尝试给 NGINX 编译 TLS 1.3 支持时踩到的一个命名坑

2018-05-21 19:58:47 +08:00
 Livid

因为目前 TLS 1.3 还没有正式发布,因此本文中描述的情况只适用于此时此刻:2018 年 5 月中旬。

目前 Chrome 支持的是 draft-23,这个版本里的 TLS 1.3 相关的 cipher 名字是:

这些值也就是你需要在 NGINX 配置文件的 ssl_ciphers 里加入的。

但是,在目前最新的 OpenSSL 1.1.1-pre6 里,TLS 1.3 相关的 ciphers 的名字变成了:

所以,目前如果用 NGINX 配合 OpenSSL 1.1.1-pre6 编译来打开 TLS 1.3 支持的话,即使 NGINX 上的配置完全正确,那么可能会要么无法获得 TLS 1.3 (降级到 1.2 且有 1.2 的 cipher 可用),要么直接看到 ERR_SSL_VERSION_OR_CIPHER_MISMATCH (如果只配置了 TLS 1.3 的 cipher 进行测试的话)。

所以结论是,目前( 2018 年 5 月)如果用 OpenSSL 1.1.1-pre6 编译的话,应该是暂时还没有浏览器支持。


OpenSSL 开发组关于 TLS 1.3 支持的一些说明:

https://www.openssl.org/blog/blog/2018/02/08/tlsv1.3/

6014 次点击
所在节点    NGINX
8 条回复
forcecharlie
2018-05-21 23:17:42 +08:00
tlswg wiki 上说 openssl 是 28 了
wqyyy
2018-05-21 23:31:29 +08:00
Raincal
2018-05-21 23:47:56 +08:00
我用的 pre2
msg7086
2018-05-22 00:04:46 +08:00
可以看一下这个帖子 /t/445216

我自己编译的 nginx 是可以用夜夜版 FF 跑通的。
https://g.x86.men/root/nginx-compiler/src/branch/master/stretch-tls13/Dockerfile
加注了 ssl_ciphers 调用 SSL_CTX_set_ciphersuites() 的补丁。
Servo
2018-05-22 08:03:44 +08:00
Openssl 主线是 28 没错,浏览器稳定本应该都是 23,Chrome Dev 现在跑的应该是 26,金丝雀不清楚。FF Nightly 一个月前支持的 28。
Livid
2018-05-22 11:16:19 +08:00
@Servo Canary 目前也是 23
Servo
2018-05-25 10:48:13 +08:00
@Livid 在推上看到 Canary 昨天到 28 了。
JemmyLoveJenny
2018-07-26 23:20:56 +08:00
看一下这个 Openssl 补丁,挺好用的
https://github.com/hakasenyang/openssl-patch/
用_ciphers 的补丁就可以在 nginx 里设置 TLS1.3 的 CipherSuite 了
更好的是还能支持等价加密算法组!

我的 nginx 配置是
ssl_ciphers "[TLS_AES_128_GCM_SHA256|TLS_CHACHA20_POLY1305_SHA256]:[TLS_AES_256_GCM_SHA384|TLS_AES_128_CCM_8_SHA256|TLS_AES_128_CCM_SHA256]:[ECDHE-ECDSA-CHACHA20-POLY1305|ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305|ECDHE-RSA-AES128-GCM-SHA256|DHE-RSA-CHACHA20-POLY1305]:[ECDHE-ECDSA-AES256-GCM-SHA384|ECDHE-RSA-AES256-GCM-SHA384]:[ECDHE-ECDSA-AES128-SHA|ECDHE-RSA-AES128-SHA]:[ECDHE-ECDSA-AES256-SHA|ECDHE-RSA-AES256-SHA]:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA";

前面的几个"TLS_"开头的就是 TLS1.3 的 CipherSuite

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

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

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

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

© 2021 V2EX