配置nginx支持tls1.3最最最坑爹的坑

作者在 2019-06-04 14:46:29 发布以下内容

按网上的教程,编译openssl 1.1.1

查看nginx信息,也是基于openssl 1.1.1编译的

root@bccnsoft:~# nginx -V
nginx version: nginx/1.17.0
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
built with OpenSSL 1.1.1c  28 May 2019
TLS SNI support enabled

然后不管怎么搞,在浏览器里查看的时候还是tls1.2,不管怎么重启调试,都是tls1.2,急炸老子的心肺!


浪费了一天的功夫,终于发现了这个坑:

nginx的所有网站配置里面都要加入 ssl_protocols      TLSv1.1 TLSv1.2 TLSv1.3;

只要一个网站的server{ ... }配置里没加入 ssl_protocols      TLSv1.1 TLSv1.2 TLSv1.3; 就有可能导致所有网站开启tls1.3失效,注意这里是“可能”,也就是说也有可能不失效,尼玛😖


总之,要保证tls1.3开启成功,最好所有网站的server{ ... }配置里都加入ssl_protocols      TLSv1.1 TLSv1.2 TLSv1.3;

Linux | 阅读 12144 次
文章评论,共6条
灰尺条着(游客)
2019-07-25 14:03
1
我艹,坑死了,正解!感谢!
现汉质然(游客)
2020-05-13 13:37
2
大哥,如你所言,我也踩了这个坑了,看了你的方法,终于搞定。
京欧敌麦(游客)
2020-11-13 14:40
3
大佬,其实只要加 ssl_protocols        TLSv1.2 TLSv1.3; 就行了.
静夜思(作者)
2022-03-23 15:35
4
以下是引用京欧敌麦在2020-11-13 14:40的发言1
大佬,其实只要加 ssl_protocols        TLSv1.2 TLSv1.3; 就行了.
注意审题:这篇博客的要点不是加入这一行配置代码,而是“nginx下所有站点”都要加入这一行配置代码,否则就可能无效。
具侯便玉(游客)
2022-04-15 11:16
5
非ssl 端口也需要配置 ssl_protocols 不?
毛创绝道(游客)
2022-09-05 11:39
6
ssl_protocols TLSv1.2 TLSv1.3; 只需要加在http层级,或者加在最前面第一个server{ ... }里面,后面的server都不需要加,加了也没有用,Nginx启动的时候以最前面的ssl_protocols设置为准。换句话说,只要第一个server设置了tls 1.3,后面的server就能用tls 1.3,如果第一个server只允许最高tls 1.2(包括不设置该项但启用了ssl,那么第一个server也会用Nginx默认值 1.0 1.1 1.2),后面的server里面即使单独设置了tls 1.3也是无效的,nginx以第一个为准。
游客请输入验证码
浏览2776849次
文章归档