记录下Nginx编译安装时如何顺便开启TLS1.3特性。
目前Chrome浏览器的65版本已经支持TLS1.3 Draft 23(在chrome:flags中查看支持的Draft版本),我们可以下载支持Draft 23的OpenSSL包。
经测试,目前OpenSSL的1.1.1版本中pre2版本是完美支持Draft 23的。所以这里使用openssl-1.1.1-pre2.tar.gz
下载后解压即可,无需安装,我们在编译nginx时,引用这个openssl目录即可。
安装nginx时的命令如下:
./configure --prefix=/opt/programs/nginx --with-openssl=/opt/nginx_source/openssl_1_1_1-pre2 --with-openssl-opt='enable-tls1_3 enable-ec_nistp_64_gcc_128 enable-weak-ssl-ciphers' --with-http_v2_module --with-http_ssl_module
nginx安装完成后,配置文件中:
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-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5; ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;