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;
操作失败,依旧不支持。
的确是,等后面更新吧。
最后改网页配置文件的时候提示测试失败
这文章有点时间了,这两天我跟新下教程