安装开启 TLS1.3,为你的网站加速

2019-01-05 更新 Nginx 版本为 1.15.8,打上 SPDY, HTTP2 HPACK, Dynamic TLS Record, Fix Http2 Push Error Patch

TLS1.3 已经正式定稿有一段时间了,Nginx 与 OpenSSL 也相继发布了最新的支持最终版 TLS1.3 的正式版本。本着追求最新技术的原则,本文用尽可能简单的方式来教你搞定 TLS1.3,让你的网站也也开始全免支持 TLS1.3,并且打了 hakasenyang 的 OpenSSL 补丁,从 TLS1.3 draft23 草案版本一路支持到 final 版本,让当下的浏览器就开始支持,免除你的后顾之忧。

系统准备

我的 VPS 系统是 Ubuntu 18.04 TLS,原则上 Ubuntu/Debian 系列可以完全无缝使用,如果想尽可能与本文环境一致,可以使用 萌咖大佬的重装系统脚本 来重新安装为最新的 Ubuntu 18.04 TLS 系统。

因为编译本身需要占用一些系统资源,最小我只在 512M 的搬瓦工 VPS 上成功编译过,再小的内存请酌情增加些虚拟内存。

安装选择

截至至本文发布时,依旧未能有现成的支持 TLS1.3 的 PPA 包使用,所以还是需要选择自己编译。为了简化大家的编译难度,我魔改了一份 angristan 大佬写的 Nginx 自动化安装编译脚本,地址在此,在原版的基础上修改了如下内容:

  • 固定 OpenSSL 版本为 1.1.1a 正式版(支持到 TLS1.3 Final 版本)
  • 固定 Nginx 版本为 1.15.8 正式版
  • 打上 SPDY, HTTP2 HPACK, Dynamic TLS Record, Fix Http2 Push Error Patch
  • 打上 hakasenyang 的 OpenSSL Patch,兼容 draft 23、26、27、28 与 final 的多个TLS1.3版本

安装

下载并且运行脚本

sudo wget --no-check-certificate https://raw.githubusercontent.com/feeeei/nginx-autoinstall/master/nginx-autoinstall.sh && chmod +x nginx-autoinstall.sh && ./nginx-autoinstall.sh

选择安装或者更新 Nginx。

脚本还是完保留了原作者的功能,可以选择安装如下 Modules:

  • PageSpeed
  • Brotli
  • Headers More
  • GeoIP
  • Fancy
  • ngx_cache_purge

选择完后等待几分钟即可安装成功。

配置

在 Nginx 中配置:

server {
        listen 443 ssl http2;
        ssl_certificate ...;//证书地址
        ssl_certificate_key ...;//证书地址
        //TlS1.0 已经不安全了,不建议使用
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        //这里选择 hakasenyang 作者推荐的兼容补丁的配置
        ssl_ciphers [TLS13+AESGCM+AES128|TLS13+AESGCM+AES256|TLS13+CHACHA20]:[EECDH+ECDSA+AESGCM+AES128|EECDH+ECDSA+CHACHA20]:EECDH+ECDSA+AESGCM+AES256:EECDH+ECDSA+AES128+SHA:EECDH+ECDSA+AES256+SHA:[EECDH+aRSA+AESGCM+AES128|EECDH+aRSA+CHACHA20]:EECDH+aRSA+AESGCM+AES256:EECDH+aRSA+AES128+SHA:EECDH+aRSA+AES256+SHA:RSA+AES128+SHA:RSA+AES256+SHA:RSA+3DES;
        root /var/www/feeeei.com;
        index index.php index.html index.htm;

        server_name feeeei.com www.feeeei.com;
        ......
        }

配置好之后重启 Nginx,通过浏览器访问网站,在 Chrome 的 Secuity 选项卡中,看到 TLS 1.3 既为开启成功。 TLS1.3 info

Last modification:January 18th, 2019 at 05:41 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment