内容简介:现在您已拥有 SSL 证书,您需要配置 Nginx Web 服务器以使用它。我们将对配置进行一些调整:首先,让我们在/etc/nginx/snippets目录中创建一个新的Nginx配置代码段。
在Web服务器上配置TLS / SSL
现在您已拥有 SSL 证书,您需要配置 Nginx Web 服务器以使用它。
我们将对配置进行一些调整:
- 我们将创建一个包含 SSL 密钥和证书文件位置的配置代码段。
- 我们将创建一个包含强 SSL 设置的配置代码段,可以在将来与任何证书一起使用。
- 我们将调整 Nginx 配置文件以处理 SSL 请求并使用上面的两个片段。
创建指向SSL密钥和证书的配置代码段
首先,让我们在/etc/nginx/snippets目录中创建一个新的Nginx配置代码段。
为了正确区分此文件的目的,我们将其命名ssl-为我们的域名:
sudo nano /etc/nginx/snippets/ssl-example.com.conf
在这个文件中,我们只需要将ssl_certificate设置为我们的证书文件和ssl_certificate_key相关的密钥。在我们的例子中,这将是这样的:
ssl_certificate /home/root/domain.com/1_www.domain.com_bundle.crt; ssl_certificate_key /home/root/domain.com/2_www.domain.com.key;
添加这些行后,保存并关闭该文件。
使用强加密设置创建配置代码段
接下来,我们将创建另一个片段,用于定义一些SSL设置。这将使Nginx具有强大的SSL密码套件,并启用一些有助于保证我们的服务器安全的高级功能。
我们将为该文件指定一个通用名称:
sudo nano /etc/nginx/snippets/ssl-params.conf
预加载HSTS可提高安全性,但如果意外启用或启用错误,可能会产生深远的影响。在本教程中,我们不会预加载该设置,但如果您确定了解其含义,则可以对其进行修改:
# from https://cipherli.st/ # and https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html 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; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; # Disable preloading HSTS for now. You can use the commented out header line that includes # the "preload" directive if you understand the implications. #add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; add_header Strict-Transport-Security "max-age=63072000; includeSubdomains"; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff;
完成后保存并关闭文件。
调整Nginx配置以使用SSL
现在我们已经有了我们的代码片段,我们可以调整我们的Nginx配置来启用SSL。
我们将在本指南中假设您正在使用/etc/nginx/sites-available目录中的defaultnginx配置文件。如果您使用的是其他nginx配置文件,请在以下命令中替换其名称。
在我们继续之前,让我们备份当前的nginx配置文件:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
现在,打开nginx配置文件进行调整:
sudo nano /etc/nginx/sites-available/default
您的nginx配置文件可能像这样:
server { listen 80 default_server; listen [::]:80 default_server; # SSL configuration # listen 443 ssl default_server; # listen [::]:443 ssl default_server;
我们将修改此配置,以便将未加密的HTTP请求自动重定向到加密的HTTPS。这为我们的网站提供了最佳安全性。如果要同时允许HTTP和HTTPS流量,请使用后面的备用配置。
我们将把配置分成两个独立的块。在第一个listen指令之后,我们将添加一个server_name指令,设置为服务器的域名。然后,我们将设置重定向到我们将要创建的第二个nginx配置文件。之后,我们将关闭这个配置:
server { listen 80 default_server; listen [::]:80 default_server; server_name example.com www.example.com; return 301 https://$server_name$request_uri; }
接下来,我们需要在下面启动一个新的nginx配置文件以。我们可以取消注释listen使用端口443的两个指令。之后,我们只需要在里面包含我们设置的两个片段文件:
注意:您可能只有一个listen指令,其中包含default_server每个IP版本和端口组合的修饰符。如果为已设置default_server的这些端口启用了其他nginx配置文件,则必须从其中一个块中删除修改器。
server { listen 80 default_server; listen [::]:80 default_server; server_name example.com www.example.com; return 301 https://$server_name$request_uri; } server { # SSL configuration listen 443 ssl default_server; listen [::]:443 ssl default_server; include snippets/ssl-example.com.conf; include snippets/ssl-params.conf; root /path/to/your/website/root
完成后保存并关闭文件。
测试
我们应该检查以确保我们的文件中没有语法错误。我们可以通过输入以下内容来执行
sudo nginx -t
如果一切顺利,您将得到如下结果:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
最后,重启服务器:
sudo systemctl restart nginx
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-01/156547.htm
以上所述就是小编给大家介绍的《Ubuntu 下配置 Nginx 服务器的 SSL 证书》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Mechanics of Web Handling
David R. Roisum
This unique book covers many aspects of web handling for manufacturing, converting, and printing. The book is applicable to any web including paper, film, foil, nonwovens, and textiles. The Mech......一起来看看 《The Mechanics of Web Handling》 这本书的介绍吧!