nginx&apache编译安装启用TLS1.3

随着TLS1.3的发展,openssl已经在1.1.1-dev加入支持TLS1.3-draft18
本文简单记录一下TLS1.3安装过程

什么是TLS1.3
TLS1.3是最新的TLS加密协议,最主要的改进是支持1-RTT握手并初步支持0-RTT
详细了解请访问WIKI

https://zh.wikipedia.org/zh-cn/%E5%82%B3%E8%BC%B8%E5%B1%A4%E5%AE%89%E5%85%A8%E6%80%A7%E5%8D%94%E5%AE%9A

nginx&apache编译启用TLS1.3

1 下载openssl并解压
一定要下载draf-18版本,最新openssl开发版已经支持到draft-26,但是编译会出错
等openssl1.1.1正式发布后再升级吧. 现在仅供尝鲜 (openssl1.1.1已经正式发布,可以升级了 )

wget -O openssl.tar.gz https://github.com/openssl/openssl/archive/tls1.3-draft-18.tar.gz
tar -zxvf  openssl.tar.gz
mv  tls1.3-draft-18  openssl 

2nginx编译参数设置

wget -c https://nginx.org/download/nginx-1.13.9.tar.gz
tar -xzvf nginx-1.13.9.tar.gz
cd nginx-1.13.9/
#加上编译参数
./configure 粘贴你先前的参数 --with-openssl=../openssl --with-openssl-opt=enable-tls1_3
## 然后编译
make

3 apache编译参数设置
Apache2.4暂时没有支持TLS1.3....
Apache 2.4.37已经正式支持TLSv1.3,赶快升级吧

修改配置文件

 ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
 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+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
 ssl_early_data on; #nginx1.15.4版本正式支持0-RTT,推荐开启

TLS1.3仅支持以下加密方式,必须添加

  • 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

浏览器开启 TLS1.3 支持
1 Chrome 开启TLS1.3
在浏览器打开
chrome://flags/#tls13-variant
选择Enabled Draft , 重启chrome

2 Firefox 开启TLS1.3
在地址栏输入 about:config 然后回车键,如下图所示,点击 我了解此风险! ,在搜索框搜索security.tls.version.max,然后将其值由 3 修改成 4 .修改完毕后重启 Firefox。

参考来源:
https://nydnxs.com/2017/Enable_TLS_1_3/
https://www.openssl.org/blog/blog/2017/05/04/tlsv1.3/
https://love4taylor.me/nginx-openssl-dev-tls1.3.html

Leave a Comment