为你的网站开启 TLS 1.3

栏目: 服务器 · Nginx · 发布时间: 5年前

内容简介:得益于 Nginx、OpenSSL 新版本的发布,以及 Chrome、Firefox 等一众浏览器的推进,TLS 1.3 已经能很方便地进行部署了。需要注意的是,TLSv1.3 的启用有两个重要条件:由于 Ubuntu 18.04.1 系统的 OpenSSL 版本还停留在 1.1.0,因此我们需要对 nginx 重新编译,截至发稿,本文所用组件版本如下:

得益于 Nginx、OpenSSL 新版本的发布,以及 Chrome、Firefox 等一众浏览器的推进,TLS 1.3 已经能很方便地进行部署了。

实验环境

需要注意的是,TLSv1.3 的启用有两个重要条件:

  • 你的 nginx 必须支持 TLSv1.3,也就是 1.13 以上
  • 你的系统运行 OpenSSL 环境必须大于 1.1.1

由于 Ubuntu 18.04.1 系统的 OpenSSL 版本还停留在 1.1.0,因此我们需要对 nginx 重新编译,截至发稿,本文所用组件版本如下:

Ubuntu 18.04.1 LTS
nginx 1.15.5
OpenSSL 1.1.1 LTS

0. 添加 nginx 官方源

其它文章不同,这里不直接下载 nginx 源码,省去了编译参数的编写

首先信任 nginx pgp

curl https://nginx.org/keys/nginx_signing.key | apt-key add

添加更新源

cat >> /etc/apt/sources.list.d/nginx.list << EOF
deb [arch=amd64] http://nginx.org/packages/mainline/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ bionic nginx
EOF

更新列表

apt update

1. 拉取源码

新建一个目录用于保存源码

mkdir /usr/local/src/nginx && cd /usr/local/src/nginx

拉取 nginx 源码

apt install dpkg-dev -y
apt source nginx

拉取后目录下应该有三个文件,一个文件夹

nginx-1.15.5/
nginx_1.15.5-1~bionic.dsc
nginx_1.15.5-1~bionic.debian.tar.xz
nginx_1.15.5.orig.tar.gz

退到上层目录,拉取 OpenSSL 源码

cd ..
git clone https://github.com/openssl/openssl.git -b OpenSSL_1_1_1-stable

2. 修改编译开关

进入 nginx 目录

cd nginx/nginx-1.15.5/

指定 OpenSSL 运行库

vim debian/rules

如图添加 --with-openssl=/usr/local/src/openssl ,保存即可

为你的网站开启 TLS 1.3

打开 gcc 编译参数文件

vim auto/cc/gcc

注释 CFLAGS="$CFLAGS -Werror"
为你的网站开启 TLS 1.3

3. 编译 deb

执行编译

apt build-dep nginx
dpkg-buildpackage -b

如果没有错误的话,可以在上层目录下看到如下文件

root@dc:/usr/local/src/nginx# ls
nginx-1.15.5
nginx_1.15.5-1~bionic_amd64.buildinfo
nginx-dbg_1.15.5-1~bionic_amd64.deb
nginx_1.15.5-1~bionic_amd64.changes
nginx_1.15.5-1~bionic.debian.tar.xz
nginx_1.15.5-1~bionic_amd64.deb
nginx_1.15.5-1~bionic.dsc
nginx_1.15.5.orig.tar.gz

如果系统之前安装过其它 nginx 的话建议删除

apt remove nginx nginx-common nginx-full -y --allow-change-held-packages

执行安装

dpkg -i nginx_1.15.5-1~bionic_amd64.deb

启动

systemctl start nginx

锁定版本,防止被 apt 升级覆盖安装

apt-mark hold nginx

4. 检查安装情况

运行命令

nginx -V

如果像下图一样,则证明编译安装成功

为你的网站开启 TLS 1.3

5. 开启 TLSv1.3

编辑 /etc/nginx/nginx.conf ,在 http 配置块中添加/修改

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256;
ssl_prefer_server_ciphers on;
ssl_early_data on;

重启

nginx -t
systemctl reload nginx

至此,TLSv1.3 开启成功。

测试支持

目前 OpenSSL 1.1.1 所支持的为 the final version of TLS 1.3 ,所有草案版本不会被兼容,因此需要升级最新的浏览器,并且打开开关。

  • Chrome: 打开 chrome://flags/#tls13-variant 选择 enabled (Final)
  • Firefox: 打开 about:configsecurity.tls.version.max 改为 4

为你的网站开启 TLS 1.3


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

暗趋势

暗趋势

王煜全 / 中信出版集团 / 2019-1 / 59元

《暗趋势》由得到“全球创新260讲”专栏主讲人王煜全,为你揭示藏在科技浪潮中的商业机会,教你获得把握趋势的能力,发现小趋势,抓住大机遇。 《暗趋势》聚焦于改变你生活和未来的产业,深度解读人工智能、混合现实、区块链、生物医疗等你必须关注的科技行业,并分析新科技给企业和个人带来的发展机遇,前瞻性提出企业和个人的思维与行动应对策略。 王煜全作为全球科技前哨侦察兵,以其每年5亿元的科技投资及2......一起来看看 《暗趋势》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试