折腾:
【未解决】nginx中关于ssl配置的逻辑和常见参数含义
期间,已经可以通过官网资料和nginx命令确认支持TLSv1.2了,但是对于:
“* TLS 必须支持 1.2 及以上版本。部分旧 Android 机型还未支持 TLS 1.2,请确保 HTTPS 服务器的 TLS 版本支持 1.2 及以下版本;“
中提到的:
TLS 必须支持 1.2 及以上版本
且在:
看到提到了TLSv1.3
“The TLSv1.3 parameter (1.13.0) works only when OpenSSL 1.1.1 built with TLSv1.3 support is used.”
-》此处也最好去确认一下,是否支持?如何才能支持?
nginx ssl_protocols TLS v1.3
... ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256; ssl_prefer_server_ciphers on; ssl_ecdh_curve secp384r1; ...
抽空可以去试试:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
然后:
nginx -t
看看结果就知道了。
不过人家提到了:“Since Nginx 1.13”
此处只是:1.12.2,没到1.13
[root@xxx cert]# nginx -V nginx version: nginx/1.12.2 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) built with OpenSSL 1.0.2l 25 May 2017 TLS SNI support enabled configure arguments: --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E
所以肯定是不支持的。
“2018.04.18
截止到现在 TLS 1.3 协议仍然处于草案阶段,最新的 RFC 文档是 draft 28,对于大型系统来说,目前并不建议部署,当然对于个人网站来说,可以部署 TLS 1.3 版本 。
2)TLS 1.3 和 TLS 1.2 版本有很大的不同,从协议消息的角度来看,两者是不兼容的,也正因为此,大型系统目前不建议采用 TLS 1.3 版本。”
“Nginx 底层使用的密码库是 OpenSSL,也就是说是否支持 TLS 1.3 版本,取决于 OpenSSL 库。
目前 Nginx 1.13 以上的版本支持 TLS 1.3 版本,而 OpenSSL 1.1.1 版本支持 TLS 1.3 版本,最新的 OpenSSL 1.1.1-pre5 支持 TLS 1.3 draft 26。”
-》
所以此处暂时可以不考虑一定非要支持:TLSv1.3
提到了:
OpenSSL后来分化出:
BoringSSL and LibreSSL.
不过还是想要顺带去搞清楚:此处的openssl的版本到底是多少?
nginx openssl version check
之前试了:
openssl -v openssl -V openssl --help
都不行。后来参考:
试了:
[root@xxx cert]# openssl version -b built on: reproducible build, date unspecified [root@xxx cert]# openssl version OpenSSL 1.0.2k-fips 26 Jan 2017
得知此处是:
OpenSSL 1.0.2k-fips
openssl version check
【总结】
对于“Nginx 1.13 以上的版本支持 TLS 1.3 版本,而 OpenSSL 1.1.1 版本支持 TLS 1.3 版本”
此处:
- nginx:1.12.2
- OpenSSL:1.0.2k
-》所以此处不支持TLS v1.3的
-》且由于目前TLS v1.3也不够成熟,不够大规模使用,所以也不需要支持。
- 等以后有需要再说。