距离我之前给 nginx 启用 TLS 1.3 已经过了 11 个月了。快一年过后,许多与 nginx 相关的程序、补丁都有了很大的变化: OpenSSL 已经在发布 1.1.1 的测试版,写本文时最新版本是 1.1.1-pre8(也就是 Beta 6)。 nginx 已经更新到 1.15.1。 nginx 的 HPACK 补丁(HTTP 头压缩补丁)的 bug 已经有另外的补丁的补丁修复,使用原先的 HPACK 补丁会导致网站访问不正常,体现为每个网站只能打开一个页面,第二个页面开始就出现协议错误。 有大佬 发布了 OpenSSL 的补丁 ,可以让最新版 OpenSSL 同时支持 TLS 1.3 的 draft 23,26,28 三个版本。 Lets Encrypt 证书已经自带 Certificate Transparency 信息了,不需要 nginx-ct 了。 2018 年 7 月 1 日起,TLS 1.0 不再被建议使用。 因此我重新调整了 nginx 的编译和运行配置,以适应 8102 年的需要。 Dockerfile 我依然使用 Docker 部署 nginx。与之前的 Dockerfile 相比,新的 Dockerfile 只是改了下版本号,...
为 nginx 启用 TLS 1.3,并传递给 FastCGI 后端
OpenSSL 在最新的测试版中提供了 TLS 1.3 的实验性支持,包括了一系列的性能和安全性优化。最新的 nginx 1.13 系列也相应的添加了 TLS 1.3 的相关选项。 不过由于 TLS 1.3 还处在草案状态,现在使用还是要踩一些坑的: TLS 1.3 目前有 18、19、20 三个版本的草案已经被 OpenSSL 等实现,而且它们互不兼容,也没有一个 SSL 的库把它们三合一。 目前 Chrome、Firefox 等浏览器广泛使用的是 18 版草案,但是这个版本的 OpenSSL 不支持 TLS 扩展,而 Certificate Transparency 需要用到它。 虽然最新的 nginx-ct 插件增加了 TLS 1.3 的 Certificate Transparency 支持,但是由于第二条,它无法与草案 18 的 OpenSSL 一同工作,会出现编译失败的情况。因此必须退回到 nginx-ct 项目 release 中的 1.3.2 版本,而这个版本对 TLS 1.3 不生效。 我部署 nginx 使用的 Dockerfile 如下: FROM debian:jessie-slim MAINTAINER Lan Tian "lantian@lantian....
OpenSSL “心血”漏洞 造成巨大影响
2014年4月8日,微软正式停止对Windows XP提供支持服务。 2014年4月8日,著名开源SSL支持软件OpenSSL爆出「心血」漏洞,该漏洞面前几乎现在的一切 IDS系统和防火墙都无法防御。 SSL,全称Secure Socket Layer,是一种互联网上广泛使用的加密协议,它可以防止数据在用户和服务器传输时被窃听。OpenSSL是一款开放源代码的SSL支持软件,通过调用它,所有软件都可以轻松实现SSL加密连接,不需要自己再研究一遍SSL了。HTTPS协议就利用SSL保护用户数据,大型网站在用户登录时会将用户导向HTTPS页面,以便保护用户数据。 但是OpenSSL爆出的「心血」漏洞,则对所有这些软件造成了巨大的影响。这个漏洞会导致什么呢?随机读取内存,一次64KB。 一次64KB,而这个攻击可以被一直重复而不会被防火墙发现,因此黑客可以不断遍历整台服务器的内存,从内存中拿到一些重要的数据,比如用户密码,cookie,和网站程序源代码。利用这些信息,黑客可以盗号,...