TLSv1.3已经于2018年8月正式发表,由于前段时间抛弃了Cloudflare,服务端更新了Nginx版本,但是 CentOS 7 系统中自带的 openssl 版本是1.0.2k,不支持TLSv1.3。于是再次重新编译 Nginx 并使其支持 TLSv1.3。
重新编译 Nginx
OpenSSL 从 1.1.1 开始支持 TLS v1.3。我们需要下载 OpenSSL 的源码,并将其路径加入 Nginx 后重新编译。
关于安装 Nginx 请见:
下载 OpenSSL 源码
OpenSSL 的源码可以在这里找到,当前最新版本为1.1.1g。
cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
tar xf openssl-1.1.1g.tar.gz
重新编译 Nginx
使用 nginx -V
查看编译参数,然后进入 nginx 源码目录。
# 重新配置并附加openssl库
./configure --with-openssl=../openssl-1.1.1g 其他编译参数
# 编译
make
更新 Nginx
# 备份
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
# 更新
make upgrade
cp objs/nginx /usr/local/nginx/sbin/
配置 nginx.conf
在 nginx.conf
中添加配置,使服务器支持TLSv1.3。
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
添加完成后,重载 Nginx。
检测 TLSv1.3
- 在 Chrome 中,按
F12
打开Security标签,可以看到TLS版本和使用的加密套件。
本文如无特殊说明,版权归鬼斩所有。
本文链接:https://ybw0014.net/post/nginx-tls-v1-3
本站采用 知识共享许可协议 4.0 未本地化版本 对文章进行保护,转载时遵守此协议。