如何配置Nginx只使用TLS 1.2/1.3
时间:2019-11-20 08:52:50 来源:igfitidea点击:
TLS是传输层安全性的首字母缩写。它是旨在提供网络通信安全性的加密协议。
如何配置Nginx Web服务器只能使用TLS 1.2和1.3协议?
如何检查Nginx版本
$ nginx -V $ nginx -v
如何检查OpenSSL版本
运行:
$ openssl version
在Nginx Web服务器中只启用TLS 1.2
编辑nginx.conf:
$ sudo vi /etc/nginx/nginx.conf
或编辑虚拟主机:
$ sudo vi /etc/nginx/vhosts.d/theitroad.local
将ssl_protocols设置为:
ssl_protocols TLSv1.2;
如何在Nginx中启用TLS 1.3
如果需要支持TLS 1.2和1.3版本,在nginx配置文件中使用以下内容:
ssl_protocols TLSv1.2 TLSv1.3;
在nginx中只启用TLS版本1.3:
ssl_protocols TLSv1.3;
只启用TLS 1.3的配置示例:
server { listen 443 ssl http2; listen [::]:443 ssl http2; server www.theitroad.local; ssl_certificate /etc/nginx/ssl/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/key.pem; ssl_session_timeout 1d; ssl_session_cache shared:SharedtheitroadSSL:10m; ssl_session_tickets off; # TLS 1.3 only ssl_protocols TLSv1.3; ssl_prefer_server_ciphers off; # HSTS (ngx_http_headers_module is required) (63072000 seconds) add_header Strict-Transport-Security "max-age=63072000" always; # OCSP stapling ssl_stapling on; ssl_stapling_verify on; # verify chain of trust of OCSP response using Root CA and Intermediate certs ssl_trusted_certificate /etc/nginx/ssl/fullchain.pem; # replace with the IP address of your resolver resolver 8.8.8.8; }
重新加载或重启Nginx
我们需要重启nginx服务使配置生效。
首先检查配置是否存在语法错误:
$ nginx -t
重新加载或重启nginx服务器:
$ sudo systemctl restart nginx $ sudo service nginx restart
测试是否支持Nginx TLS 1.2
按如下所示运行curl命令
$ curl -I -v --tlsv1.2 --tls-max 1.2 https://www.theitroad.local/
测试是否支持Nginx TLS 1.3
$ curl -I -v --tlsv1.3 --tls-max 1.3 https://www.theitroad.local/
测试是否不支持Nginx TLS 1.1/1.0
$ curl -I -v --tlsv1 --tls-max 1.0 https://www.theitroad.local/ $ curl -I -v --tlsv1.1 --tls-max 1.1 https://www.theitroad.local/