2017年04月25日发布的nginx 1.13.0支持了TLSv1.3,TLS 1.3 将是 Web 性能以及安全的一个新的里程碑,随之 TLS1.3 带来的 0-RTT 握手,淡化了大家之前对使用 HTTPS 性能上的隐忧。

所以我决定把nginx升级到最新版来体验一下TLS1.3有什么不同,同时记录升级过程。

安装方法分为两种 一种是编译安装一种是直接RPM安装
作为爱折腾的我肯定是选择以编译的形式来安装nginx,这样显得更高大上有逼格(rpm安装虽然简单,但是后面遇到什么事要修改就麻烦一点了,还不如编译的时候一次性搞定)


安装依赖

首先我们检查一下依赖环境 这个是基础哎

yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel  

没毛病,毕竟不是新系统之前该配置的我都配置了,但是还是要以防万一免得编译的时候出错

下载Nginx

下载地址搁这儿https://nginx.org/download/ 自己找个1.12.x以上的版本下载 我就骚一点直接选择最新的1.13.7

wget -c https://nginx.org/download/nginx-1.13.7.tar.gz
tar -zxvf nginx-1.13.7.tar.gz
cd nginx-1.13.7

获取必要组件 OpenSSL

为了支持 TLS 1.3,需要使用 OpenSSL 1.1.1 的 draft-19 分支,不然直接安装nginx后也不支持TLS 1.3

git clone -b tls1.3-draft-189 https://github.com/openssl/openssl.git openssl

自定义配置

这个一定要这样来,这样才能保证宝塔面板使用没有问题,要是lnmp之类的环境就随意了

2017/12/05/02:36 已修正openssl1.1.1和lua_nginx_module的冲突导致安装失败,直接去掉这个模块就好,真要在网页中使用lua脚本的还是等其他大神解决吧。

./configure \
--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/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 \
--with-openssl=../openssl \
--with-openssl-opt='enable-tls1_3 enable-weak-ssl-ciphers'

 

安装

老套路说走咱就走啊

make  
make upgrade

 

安装好了现在看看是不是提示 “nginx version:nginx/1.13.7”

nginx -v

 


 

现在应该已经可以使用TLS1.3了 输入一下命令查看是否以支持TLS1.3

nginx -t

如果显示的和我一样那就是已经支持TLS1.3了

给网站开启TLS1.3

这一步应该是最简单的了 直接复制TLS1.3到设置-配置文件

在 ssl_protocols 后面添加一个TLSv1.3可以了(注意后面还有一个;)

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;