无法在 Nginx 服务器中使用 LetsEncrypt 设置 HTTPS

Unable to set HTTPS using LetsEncrypt in Nginx server

我按照以下教程在 DigitalOcean 上为我的网站设置了 https: https://www.digitalocean.com/community/tutorials/how-to-deploy-a-laravel-application-with-nginx-on-ubuntu-16-04

但是,我卡在了这个地方 - 第 6 步 — 使用 TLS 保护您的应用程序

include snippets/ssl-example.com.conf;
include snippets/ssl-params.conf;

我的代码片段文件夹中没有 ssl-*.conf 来匹配上述 TLS conf 文件中的行。到目前为止,我没有看到任何其他错误。我可以使用 Http 查看我的站点,但不能使用 HTTPS。

命令 sudo nginx -t 产生:

nginx: [emerg] open() "/etc/nginx/snippets/ssl-example.com.conf" failed (2: No such file or directory) in /etc/nginx/sites-enabled/example.com:13

是的,那些文件不存在。所以,我猜教程跳过了生成这些文件的步骤。

命令 ls /etc/nginx/snippets 产生:

fastcgi-php.conf
snakeoil.conf

显然 ssl-*.conf 文件丢失了。

请帮忙。我尝试在 DigitalOcean 社区寻求帮助,但没有收到任何帮助。

提前致谢。

好的,在研究了一段时间后,我自己找到了解决方案。

我们必须自己创建这些文件(配置片段)。

我们首先创建配置片段文件:

sudo vim /etc/nginx/snippets/ssl-example.com.conf

然后我们在此文件中添加我们的 SSL 密钥和证书位置:

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

现在,我们在创建第二个片段文件后添加加密设置:

 sudo vim /etc/nginx/snippets/ssl-params.conf

可以很容易地添加此设置 link

保存此文件后,我们要做的就是修改Nginx配置文件。

经过同样的问题并经过更深入的安全研究... 我发现当你遇到这个错误时,你在创建一个真正安全的 SSL 设置方面基本上落后了一步,要么你粘贴了一个准备使用的 Nginx 配置,要么你错过了教程中的一个步骤,很明显你没有ssl-params.conf 文件。但在此之前,强烈建议创建一个安全组,这样你也可以这样做。其中一种方法是使用强大的 Diffie-Hellman 组,这有助于确保我们的安全应用保持安全。

运行 在您的服务器上执行以下命令:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

这需要一两分钟的时间,加密对于某些计算机来说应该很难,完成后您可以继续。您将在需要的 ssl-params.conf.

中使用创建的文件

您需要在您的服务器上为 SSL 创建丢失的文件来保存这些设置,如果您向该服务器添加另一个域,您可以通过以下命令以这种方式重用它们:

sudo nano /etc/nginx/snippets/ssl-params.conf

在里面,您可以复制粘贴以下设置。

# See https://cipherli.st/ for details on this configuration
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off; # Requires nginx >= 1.5.9
ssl_stapling on; # Requires nginx >= 1.3.7
ssl_stapling_verify on; # Requires nginx => 1.3.7
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
# Add our strong Diffie-Hellman group
ssl_dhparam /etc/ssl/certs/dhparam.pem;

control + X 保存并退出,然后按 Y,然后输入。