在 Ubuntu 18.04 + Nginx 的环境下启用 TLS 1.3

TLS 1.3 是最新的安全传输协议,目前已经被主流系统和浏览器支持了,主流网站(如 Google)也早已开启了 TLS 1.3 的支持。本文介绍如何在 Ubuntu 18.04 + Nginx 下开启 TLS 1.3 的支持。

升级 Ubuntu 和 Nginx

首先升级至 Ubuntu 18.04.3,这是当前的最新版本。如果想要在 Nginx 下启用 TLS 1.3 的全部特性,包括 0-RTT,建议使用 Nginx 的最新 Stable PPA。

使用 Nginx Stable PPA:

sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get upgrade

更新 Ubuntu 和 Nginx 后,就可以写配置文件启用 TLS 1.3 了。

修改配置文件以启用 TLS 1.3

编辑 /etc/nginx/nginx.conf 文件,在 http 那块,找到 ssl_protocols 这字段,将原先的修改为:

ssl_protocols TLSv1.2 TLSv1.3;

建议保留 TLSv1.2,这样在旧的设备和环境上依然可以保持正常的浏览和访问。修改后,重启 Nginx:

sudo systemctl restart nginx

生效和验证

就这么简单,TLS 1.3 就启用成功了,那么如何验证网站是否启用成功了?只需要打开 Chrome,进入 Develop Tools,选择 Security 这个标签,接下去访问你的网站,待网站加载成功后,如果在 Connection 的 Protocol 看到了 TLS 1.3,那么就说明启用成功了。

IMTX 启用 TLS 1.3.png

关于 0-RTT

默认情况下,Nginx 没有启用 TLS 1.3 的 0-RTT。那么什么是 0-RTT?0-RTT 的全称是「Zero Round Trip Time Resumption」,可以理解为恢复连接时不需要握手(大家都知道 TCP 的三次握手吧)。通过 0-RTT 技术,在重复访问同一个站点的资源时,可以减少 TLS 握手,直接开始请求数据,因此可以进一步加快网络请求速度。

我选择暂时不开启这个特性,准备更深入的做一番了解后再开。假如你想要开启的话,可以参考这篇文后的第三篇文章和其他补充材料。

总结

虽然开启 TLS 1.3 对于我这样的小站来说不会有什么质的提升,但是对于大型网站来说,比如 Google、Cloudflare,他们早就利用这个技术带来了全方位的显著提升。

更主要的是,现在主流操作系统和浏览器都支持了,那么何不也同步更新到新技术呢。

扩展阅读

欢迎使用图拉鼎和他的团队开发的作品

效率控 - 聚合众多实用小工具

装机必备的高颜值工具箱,拥有超过 18 款工具,完成日常各类任务。支持 iPhone、iPad 和 macOS。

No Comment

Leave a Comment