在 9 月 30 日星期四,旧版浏览器和设备处理 Let's Encrypt 证书的方式将略有改变。虽然大多数网站不会受到影响,但**如果您提供 API 或支持物联网设备,则可能会影响您**。
TL;DR
- Let's Encrypt 的DST Root CA X3 根证书将于 9 月 30 日到期,但 Let's Encrypt 的较新ISRG Root X1 根证书已经部署,这意味着所有网站将在所有相对现代的设备上自动保持工作状态。
- 然而,许多旧设备将停止工作,因为它们没有收到更新(这意味着:它们不知道ISRG Root X1 是一个受信任的根证书)。
- 对于旧版 Android 版本,Let's Encrypt 已经实施了一种解决方法。它通过保持已过期的DST Root CA X3 证书处于活动状态来实现。
- 由于此 Android 解决方法默认启用,因此 OpenSSL/GnuTLS/LibreSSL 的某些版本(在许多物联网设备上使用)将在 9 月 30 日开始出现故障,原因是存在一个错误。
- 解决此错误的方法是“优先”使用ISRG Root X1 证书,Forge 现在支持此证书,但这样做会禁用 Android 解决方法。
发生了什么变化?
简而言之,Let's Encrypt 的交叉签署DST Root CA X3 证书即将到期。该证书已经存在了自 2015 年 10 月推出以来,几乎所有设备(和浏览器)都能依赖它。
幸运的是,Let's Encrypt 自推出以来一直在努力工作,并创建了自己的根证书,称为“ISRG Root X1”。通过与所有主要浏览器和操作系统开发人员合作,该证书已包含在几乎所有现代设备中。
在 5 月 4 日,Let's Encrypt 已经部署了必要的更改,并且一直在提供包含新的 **ISRG Root X1** 证书和即将过期的 **DST Root CA X3** 证书的组合。这样,了解并信任此新 **ISRG Root X1** 证书的现代浏览器将使用它,而不知道或不信任此证书的旧浏览器(由于未收到包含它的软件更新)仍然可以使用 **DST Root CA X3**,直到它在 9 月 30 日过期。
(部分)问题
**一旦此** DST Root CA X3 在 9 月 30 日过期,大量 旧设备未收到包含新ISRG Root X1 证书的软件更新,将突然无法向 Let's Encrypt 安全网站和 API 发出请求。
虽然 Android 有一个有限的解决方法(见下文),但我们的建议是,如果您绝对需要 支持运行旧操作系统的设备(如 iPhone 4 或 Ubuntu 14.02),请执行以下任一操作。
- 购买您自己的 SSL 证书(来自不同的供应商,例如 Comodo),并使用它而不是 Let's Encrypt。
- 手动 将新的ISRG Root X1 证书导入 到受影响设备的证书密钥存储中。
- 使用最新版本的 Firefox,它使用自己的内置密钥存储,而不是操作系统提供的/包含的密钥存储。
话虽如此,解决此问题的最佳方案 是抓住机会完全放弃对这些设备的支持。虽然这似乎是一个严厉的选择,但这些设备未收到ISRG Root X1 证书作为其更新的一部分这一事实几乎肯定也表明它们也未收到其他重要的安全更新。
这意味着继续使用此类设备不仅会对访问您的网站和使用您的平台的最终用户构成潜在风险,而且如果他们的设备被黑客攻击导致他们的凭据被恶意使用(例如)从您的平台中提取私人数据或执行诸如永久删除数据之类的操作,也可能会对您的网站/平台/公司的声誉产生负面影响。
Android 的解决方法
由于 Android 的设计决策(>= 2.3.6 && <= 7.1.1),即使证书被认为已过期,被认为是所谓的“信任锚”的证书仍然有效。
这意味着,如果 Let's Encrypt 在 9 月 30 日之后继续使用过期的 **DST Root CA X3** 证书,这些版本的 Android 将能够访问 Let's Encrypt 保护的网站 直到 2024 年初,并且 他们默认情况下决定这样做。
太好了!最大兼容性。问题解决!🚀
.. 另一个问题(对于物联网设备)
虽然决定通过包含过期证书来支持旧版 Android 设备是一个很好的决定,但不幸的是,它的持续包含会导致另一个问题。
由于一个错误 在某些版本的 OpenSSL (1.0.0 - 1.0.2)、GnuTLS (< 3.6.14)、LibreSSL (< 3.2.0) 以及其他 TLS/SSL 库中,Let's Encrypt 的证书将被视为无效,因为这个无效的 DST Root CA X3 证书仍然被包含在内。
这可能会给许多物联网设备带来问题,因为这些设备通常不会收到软件更新,并且可能仍然依赖于这些库。
解决方案
为了解决这个问题,今天发布的 Laravel Forge 使您能够做出选择,并明确允许您 **优先使用“ISRG Root X1 链”**。
通过选择此选项,Forge 将指示 Let's Encrypt 仅为 ISRG Root X1 证书创建证书,并且不包含 DST Root CA X3 证书。这会产生一些影响。
虽然以上所有内容看起来都像是优点而不是缺点,但请记住,仍然有大量的 Android 用户(大约 30%)使用的是无法升级到兼容版本的设备。因此,至少目前,我们以及 Let's Encrypt 本身都建议大多数人不要使用此选项。
如果您还没有 Forge 帐户,现在是注册的好时机!注册!Forge 允许您轻松创建和管理 PHP 服务器,包括 MySQL、Redis、Memcached、数据库备份以及运行健壮的现代 Laravel 应用程序所需的一切。