无法在 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
,然后输入。
我按照以下教程在 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
,然后输入。