昨天尝鲜 Google 公共证书后照例打开 F12 欣赏下证书,结果在安全页发现使用的是 TLS1.2 连接:
using TLS1.2, ECDHE_RAS with X25519, and AES_256_GCM.
也在 ssllabs 上反复确认了不支持 TLS1.3 ,但我记得很久以前专门研究配置过是 TLS1.3 的,而且同样配置的另一台 VPS 上的网站也能开始 TLS1.3 ,就很迷惑...
环境如下:
编译配置:
./configure \
--prefix=/etc/nginx \
--with-openssl=../openssl-1.1.1n \
--with-openssl-opt='enable-tls1_3' \
--with-http_v2_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_realip_module \
--with-stream \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
SSL 配置:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDH+CHACHA20:ECDH+AESGCM+AES256;
ssl_prefer_server_ciphers off;
昨天折腾了一晚也没发现问题所在,直到今天打开了 nginx.conf 文件仔细比对,发现去年加上了一行奇怪的东西:
server {
listen 443 ssl default_server;
# return 444;
ssl_reject_handshake on;
}
ssl_reject_handshake
是 Nginx 1.19.4 引入的新特性,用来 block 未指定的 SSL 握手,以前不知道在哪里看到一个安全问题后加上的,可以避免在 IP 访问时通过证书暴露域名,试着删除之后,TLS1.3 终于回来了。
顺着关键词搜了下发现我不是一个人: https://stackoverflow.com/questions/71023951/ssl-alert-number-70-with-tlsv1-3
但应该是在 OpenSSL 1.1.1h 修复了,但...不过问题解决了就好,不然逼死强迫症...
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.