Nginx 的 TLS 1.3 到底应该怎么配置?

2019-03-21 10:59:21 +08:00
 ech0x

Nginx 版本:

built with OpenSSL 1.1.1  11 Sep 2018
TLS SNI support enabled
configure arguments: --add-module=../ngx_brotli --with-openssl=../openssl --with-openssl-opt=enable-tls1_3 --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www

配置文件

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

  ssl_ciphers 'TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA
256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-
DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA38
4:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-
SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CB
C3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

不知道为什么还是不能启用 TLS 1.3

5750 次点击
所在节点    问与答
15 条回复
msg7086
2019-03-21 11:22:30 +08:00
ssl_ciphers 去掉试过吗?
ech0x
2019-03-21 11:47:47 +08:00
@msg7086 #1 还是不行.....
msg7086
2019-03-21 11:57:09 +08:00
你如果用 Debian 或者 Ubuntu 的话可以试试 SB,可以看看到底是配置的问题还是编译的问题。
https://mirrors.xtom.com.hk/sb/nginx/
ech0x
2019-03-21 12:40:02 +08:00
@msg7086 #3 好像还是不行.....SB 的 Nginx 没有 enable-tls1_3 ?
jlkm2010
2019-03-21 13:06:56 +08:00
最近用 caddy,感觉美滋滋
goodryb
2019-03-21 13:12:34 +08:00
cd nginx-1.15.6
./configure --prefix=/usr/local/nginx --add-module=../ngx_brotli --with-openssl=../openssl --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre=../pcre-8.42 --with-zlib=../zlib-1.2.11 --with-openssl-opt='enable-tls1_3'

这是我的编译参数,能够正常启用
lhx2008
2019-03-21 13:13:23 +08:00
不会浏览器没开启 TLS1.3 吧
goodryb
2019-03-21 13:16:37 +08:00


可以去这里测试一下 https://www.ssllabs.com/ssltest/index.html
ech0x
2019-03-21 13:35:54 +08:00
@lhx2008
@goodryb
我测试了一下,应该不是浏览器的问题。
virusdefender
2019-03-21 13:37:23 +08:00
tao1991123
2019-03-21 13:42:04 +08:00
试试这个吧
https://nginxconfig.io/
Hardrain
2019-03-21 15:09:47 +08:00
如果$OPENSSL_PATH/lib 不在 ld.so.conf 里,编译时加上 LDFLAGS='-Wl,-rpath=$OPENSSL_PATH/lib'
否则编译时,ld 会找到自己编译的 OpenSSL 的动态库(libssl.solibcrypto.so)和 Header
运行时还是调用系统自带的。

ldd $NGINX_PATH/sbin/nginx 看看 nginx 链接到的动态库是不是 OpenSSL 1.1.1 的?
Hardrain
2019-03-21 15:11:08 +08:00
此外,如不能指定 TLS 1.3 加密套件顺序,尝试打这个 patch https://github.com/Hardrain980/nginx-tls13-chacha20-patch 后编译

这是 OpenSSL 用了一个新的函数来定义 TLS 1.3 加密套件导致的。
ech0x
2019-03-21 16:19:56 +08:00
@Hardrain #12 好像是这个问题,我看了一眼 libcrypto.so 链接到到还是系统的动态库。
hsie
2019-03-22 11:07:56 +08:00
假如网站打得开,估计是浏览器不支持,我以下的配置没问题。

ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers [TLS13+AESGCM+AES128|TLS13+AESGCM+AES256|TLS13+CHACHA20]:[EECDH+ECDSA+AESGCM+AES128|EECDH+ECDSA+CHACHA20]:EECDH+ECDSA+AESGCM+AES256:EECDH+ECDSA+AES128+SHA:EECDH+ECDSA+AES256+SHA:[EECDH+aRSA+AESGCM+AES128|EECDH+aRSA+CHACHA20]:EECDH+aRSA+AESGCM+AES256:EECDH+aRSA+AES128+SHA:EECDH+aRSA+AES256+SHA:RSA+AES128+SHA:RSA+AES256+SHA:RSA+3DES;
ssl_prefer_server_ciphers on;

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/546906

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX