为你的网站开启 TLS 1.3

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

内容简介:得益于 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


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

查看所有标签

猜你喜欢:

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

旷世之战――IBM深蓝夺冠之路

旷世之战――IBM深蓝夺冠之路

纽伯 / 邵谦谦 / 清华大学出版社 / 2004-5 / 35.0

本书作者Monty Neworn是国际计算机象棋协公的主席,作者是用生动活泼的笔触描写了深蓝与卡斯帕罗夫之战这一引起全世界关注的历史事件的前前后后。由于作者的特殊身份和多年来对计算机象棋的关心,使他掌握了许多局外人不能得到的资料,记叙了很多鲜为人知的故事。全书行文流畅、文笔优美,对于棋局的描述更是跌宕起伏、险象环生,让读者好像又一次亲身经历了那场流动人心的战争。 本书作为一本科普读物......一起来看看 《旷世之战――IBM深蓝夺冠之路》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具