内容简介:得益于 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
,保存即可
打开 gcc 编译参数文件
vim auto/cc/gcc
注释 CFLAGS="$CFLAGS -Werror"
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
如果像下图一样,则证明编译安装成功
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:config
将security.tls.version.max
改为4
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
旷世之战――IBM深蓝夺冠之路
纽伯 / 邵谦谦 / 清华大学出版社 / 2004-5 / 35.0
本书作者Monty Neworn是国际计算机象棋协公的主席,作者是用生动活泼的笔触描写了深蓝与卡斯帕罗夫之战这一引起全世界关注的历史事件的前前后后。由于作者的特殊身份和多年来对计算机象棋的关心,使他掌握了许多局外人不能得到的资料,记叙了很多鲜为人知的故事。全书行文流畅、文笔优美,对于棋局的描述更是跌宕起伏、险象环生,让读者好像又一次亲身经历了那场流动人心的战争。 本书作为一本科普读物......一起来看看 《旷世之战――IBM深蓝夺冠之路》 这本书的介绍吧!