火星救援: Nginx 开启 0-RTT 支持。

2018-10-21 12:13:34 +08:00
 Servo

0-RTT 有什么用

“简单来说就是,减少握手次数,除首次访问外,让 HTTPS 和 HTTP 几乎一样快。”

可以到 https://ssl.hakase.io 测试自己的浏览器是否支持 0-RTT,记得多 Ctrl F5。不支持也没关系,先开启,浏览器迟早会支持的。

配置

Nginx 加入下列配置。( Openssl 1.1.1、Nginx 1.15.3+)

ssl_early_data on

重放攻击

“上面说过的这种好处是以安全性为代价换来的,有遭受重放攻击的风险。” 这也是 Nginx 未默认开启 0-RTT 的原因。

对于动态网站,“ 0-RTT 有重放攻击的风险,如果启用了 TLS 1.3 0-RTT,最好就告知后端,后端就可以采取措施避免重放攻击造成损害。( RFC-8470 “推荐”)对于使用 Nginx 反代的案例,就可以通过 Early-Data 头告知后端服务器。”

proxy_set_header Early-Data $ssl_early_data;

7251 次点击
所在节点    分享发现
12 条回复
lhx2008
2018-10-21 12:27:17 +08:00
TLS1.3 正式版好像大部分浏览器还不支持吧
Servo
2018-10-21 12:28:54 +08:00
@lhx2008 Cr 70 (已发布) FF 63 (后天推送)
ptsa
2018-10-21 12:47:08 +08:00
版本 70.0.3538.67 (正式版本) ( 64 位)
不支持?
Not used TLS 1.3 0-RTT (Experimental)
Servo
2018-10-21 12:51:09 +08:00
@ptsa https://www.chromestatus.com/feature/5866220553240576 ( Proposed )

可以预见的是一定会支持的。
shansing
2018-10-21 13:11:32 +08:00
后端配合 425 Too Early 状态码食用,风味更佳。
Cipool
2018-10-22 01:16:48 +08:00
有时候显示支持 有时候不支持,总觉得是网站实现有些问题。。
Love4Taylor
2018-10-22 04:50:46 +08:00
Chrome 还没支持, Firefox 看到有选项, 但是开启后依旧没显示 很迷
Servo
2018-10-22 07:41:51 +08:00
@Love4Taylor Ctrl F5
Love4Taylor
2018-10-22 08:05:17 +08:00
@Servo #8 绝了 昨天还不行的 233333
cominghome
2018-10-22 19:51:49 +08:00
神他妈"不支持也没关系,先开启,浏览器迟早会支持的"

老板看了想打人
xmlf
2019-01-19 23:03:58 +08:00
@shansing 怎么配合?能具体教练吗?网上文章太少
shansing
2019-01-20 09:10:25 +08:00
@xmlf 啊,如果你能看英文的话,直接看 RFC 8470 就行。大意是如果你判断某个请求可能会受重放攻击影响,就返回 HTTP 425 状态码,告诉浏览器现在太早了,请进行完整 TLS 握手后再发送该请求。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/499596

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX