OpenSSL 将在4月初发布 OpenSSL-1.1.1 版本,届时 OpenSSL 将支持最新的 TLS1.3,关于 TLS1.3 的优点我已经在TLS1.3展望中提到。现在最新的 OpenSSL 1.1.1-dev 中已经可以体验 TLS1.3 中的特性,不过还不是正式版,所以不要在生产环境中使用

目前我使用的是 Nginx-1.13.7 ,所以与 OpenSSL 一同手动编译
拉取 openssl-dev
主分支已经开发到草案23,Chrome可以在chrome://flags中开启 Draft 23

git clone https://github.com/openssl/openssl.git

下载 Nginx-1.13.7

wget -c http://nginx.org/download/nginx-1.13.12.tar.gz
tar zxf nginx-1.13.12.tar.gz

设定编译参数(OpenSSL中的TLS1.3是默认不开启的,所以编译时要加上enable-tls1_3)

cd nginx-1.13.5

./configure  --with-openssl=../openssl  --with-openssl-opt=enable-tls1_3 --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module

make
sudo make install

Nginx 的配置 ssl_protocols 中加入 TLSv1.3
同时在 ssl_ciphers 中添加 TLS1.3 的加密套件,支持:

TLS13-AES-128-GCM-SHA256
TLS13-AES-256-GCM-SHA384
TLS13-CHACHA20-POLY1305-SHA256
TLS13-AES-128-CCM-SHA256
TLS13-AES-128-CCM-8-SHA256

保存,重启 Nginx ,之后我们就能在 FireFox Beta 和 Chrome Beta 中看到网站已在使用 TLS1.3 (前提是你先在浏览器中手动打开 TLS1.3 支持)。