6 月,OpenSSL 发布了 1.1.1 pre8 版本,开始支持最新的 TLSv1.3 draft28 草案。

几天前,ietf 发布 TLSv1.3 最终定稿 RFC 8446(Via),这将作为 TLSv1.3 的正式版本,结束 draft23 draft28 等草案阶段的历史使命,并为日后的互联网安全提供巨大推动力。

然后在今天,BoringSSL 已提供 TLS_1_3_VERSION (tls13_rfc) 支援(Via)。

关于 TLSv1.3 的特性,可以参照 维基百科 傳輸層安全協議。对于 TLSv1.3 的更多科普,也可参看 dcc 的文章。

今日提交的 BoringSSL Commit d451453 已可用于 TLSv1.3 的正式部署,本博客已启用该特性。

编译

使用 BoringSSL 时,开启 TLSv1.3 要求使用 nginx master 分支及以上(Via)。BoringSSL 也需采用 master 分支。

git clone --branch=master https://github.com/nginx/nginx.git
git clone --branch=master https://github.com/google/boringssl.git

接下来就是编译,过程参考这篇文章。

配置

编译完成后, Nginx 配置文件 server 段添加 ssl_protocols TLSv1.3;

TLSv1.3 现行 cipher 只有以下三种:

TLS-AES-128-GCM-SHA256
TLS-AES-256-GCM-SHA384
TLS-CHACHA20-POLY1305-SHA256

所以 Nginx 配置文件应该是这样写的:

server {
    ...

    ssl_protocols TLSv1.3 TLSv1.2;
    ssl_ciphers  '[TLS13-AES-128-GCM-SHA256|TLS13-CHACHA20-POLY1305-SHA256] TLS13-AES-256-GCM-SHA384 [ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305] ECDHE-RSA-AES256-GCM-SHA384';
}

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。