首页 > 分类 > 网络百科 > 文章内容

启用 HTTP/2 及 TLS 1.3

从上个月初启用阿里云服务器(Elastic Compute Service,简称 ECS)后,开始折腾服务器的劲头就一发不可收拾。在之前用着 PaaS 平台的时候就想着,如果有一天换成了可以自己随意搞搞的云服务器的话基本要实现两件事:一、开启 https 安全传输协议;二、自动抓取 WordPress 官方主线 SVN 版本仓库的代码及时更新。到目前来看,不但已经实现了这两个小目标,而且还了解到了更多的服务器知识和与 https 相关的知识(当然只是皮毛)。

▲ Chrome 开发者工具下查看协议名

http/2 是当下主流的 http/1.1 传输协议的下一代协议,具有更快的传输速度,但它是建立在 SSL/TLS 上的,所以只有启用 https 后才可以使用。在没有接触 Nginx 前曾以为开启 http/2 的配置过程会很复杂,后来才发现比想象要简单得多,只要在 Nginx 的编译参数添加 –with-http_v2_module,并把配置文件中的 listen 指令添加 http2 参数就可以开启了。

Firefox/Chrome 的开发者工具里都可以看到网站协议为 HTTP/2.0 或者 h2。顺便提一下,虽然越来越多的网站开启了 https,但开启 http/2 的却还为数不多。不过目前我看到有两家比较大的网站开启了 http/2 ,他们是淘宝(js、图片等资源文件)和京东(全站),这也说明 http/2 协议应该算比较成熟了。

▲ Firefox 的网站连接信息详情页

▲ Chrome 开发者工具的安全选项卡列出的连接信息

TLS 1.3 还在起草阶段,目前主流浏览器仅支持 TLS 1.2 及以下的版本,只有少数浏览器支持 TLS 1.3 draft-18,而 openssl master 分支到现在为止已经更新到 draft-20 了。因此,开启 TLS 1.3 需要使用 openssl 的 tls1.3-draft-18 分支作为 Nginx 的编译库,并给编译库加上 enable-tls1_3 参数以使 Nginx 支持 TLS 1.3。ssl_ciphers 指令可以添加 TLS13-CHACHA20-POLY1305-SHA256 和 TLS13-AES-256-GCM-SHA384 参数,ssl_protocols 指令直接加上 tlsv1.3 参数,但是至少需要 Nginx 1.13.0 版本。

以上截图是在 Firefox Nightly 55.0a1 (2017-05-09) 及 Chromium 60.0.3096.0 上做的测试。

您可能还会对这些文章感兴趣
快来发表评论吧!
发表评论

您的电子邮箱地址不会被公开。必填项已用 * 标注

你好,新朋友!

emojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemojiemoji