答案1
(此答案将涵盖可在桌面计算机上访问 Firefox 的 Android 用户。请添加其他答案以涵盖其他用户!)
出了什么问题?我们该怎么办?
如果您使用的应用程序使用了受影响的证书,您可能已经注意到它在 5 月 30 日突然拒绝运行。“更好”的应用程序可能会显示一条实际上有用的错误消息,但许多应用程序只是在网络连接没有问题时立即抛出一个错误“检查您的互联网连接”。
如上所述,原因是 CA 证书过期,导致与服务器的初始握手被拒绝。
对于外行人来说,一个典型的会议是这样开始的:
Client: Hello, server? Can I talk to you?
Server: Sure! Here's my identification!
*Client checks identification*
当一切正常时,客户端会识别身份并继续与服务器通信。使用 Sectigo 颁发的证书时,客户端会看到 a) 过期的签名和 b) 无法识别的签名,因此会拒绝连接,认为其“不安全”。应用程序可能知道也可能不知道发生了什么,但无论如何,结果是连接服务器的尝试被拒绝。
较新的设备不会出现此问题,因为它们知道更新的证书。因此,可以通过手动安装相关 CA 证书来解决旧设备上的问题。但首先...
这安全吗?
有可能。本指南将解释如何安装证书你已经信任。我无法保证该证书没有被泄露,但如果被泄露,您已经被黑了。您还可以(也应该!)通过其他方式验证证书的指纹,例如,将指纹与第二台设备上的指纹进行比较。
安装后,您的设备可能会抱怨“未知方可能能够监控您的网络流量”。虽然这可能是真的,如果你真的担心 CA,你就不应该上网。(此外,据我所知,这只会“暴露”使用 Sectigo 签名的证书加密的信息;其他任何东西仍然像往常一样安全。)
这算是“破解”吗?这会违反我的服务条款吗?
绝对不是!你所做的本质上是应用设备供应商提供的更新(一小部分)。应该已经为您提供了。任何具有最新信任存储的设备已经有此证书(事实上,这就是你要去的地方获得首先,安装证书。)此外,安装 CA 证书并不针对任何特定的应用程序或服务。
如果任何公司认为这违反了他们的服务条款,那么他们就是无能的,坦率地说,你应该避免与他们打交道。
已经够了,我该做什么?
首先,您需要 a) 一台装有最新 Web 浏览器的计算机(如前所述,我使用的是 Firefox,但 Chrome 的程序应该类似)和 b) 一种将文件从所述计算机传输到需要“修复”的设备的方法。USB 电缆是“显而易见”且可能是最安全的选择,但您也可以通过电子邮件将文件发送给自己。(如果您这样做,请务必验证指纹!)
您也可以从 Sectigo 下载证书,但您如何知道您信任他们?您的网络浏览器/操作系统供应商已经做了大量工作(希望如此!)来验证它们是否值得信赖。您不应该只听信网络论坛上某个人说证书是“安全的”。同样,这就是为什么您要获得证书副本的原因已经相信。
如何获取该证书?
- 打开 Firefox 并导航到
about:preferences#privacy
。您也可以从“汉堡”菜单中选择“首选项”,然后选择“隐私”选项卡来访问该页面。 - 滚动到底部并按“查看证书..”按钮。
- 滚动直到找到“USERTrust 网络”。
- 在上述项目下,找到并选择“USERTrust RSA 认证机构”。
- 按“导出...”并将证书保存在某处。
- 先不要关闭您的网络浏览器。先按“查看...”并保持该选项卡打开。
- 将生成的文件复制到您的设备。
如何安装证书?
- 在您的 Android 设备上,转到“系统设置”。
- 转到“安全”(在我的设备上,它位于“个人”下)。
- 在“凭证存储”下,点击“从 SD 卡安装”。(您不需要 SD 卡;这个选项的名字很糟糕。您可以从很多地方安装,包括内部存储或 Google Drive。)
- 找到并选择您之前获得的证书。
- 给它起个名字(例如“USERTrust RSA”或“foo”;您输入的名字似乎实际上没有在任何地方使用)。确保对于“凭据使用”,您已选择“VPN 和应用程序”(默认情况下应选择它)。
- 点击“确定”添加证书。您的应用现在就可以运行了!
等待!
我如何核实证书?
仍在“安全”中时,点击“受信任的凭据”,然后点击“用户”。您应该会看到刚刚添加的证书。点击它以查看其详细信息。特别是,查找“SHA-256 指纹”,应该是(假设我的电脑和这个答案都没有被泄露):
E7:93:C9:B0:2F:D8:AA:13:E2:1C:
31:22:8A:CC:B0:81:19:64:3B:74:9C:
89:89:64:B1:74:6D:46:C3:D4:CB:D2
(我添加了换行符以匹配它在平板电脑上的显示方式,如果您的设备在同一个位置添加换行符,这可能会很方便。但它们并不意味着什么,所以如果您在不同的地方看到换行符,请不要惊慌。)
您还应该将指纹与存储在计算机上的证书进行比较(使用您之前打开的选项卡)。如果三者都匹配,则您的证书副本以某种方式被泄露的可能性非常低。
答案2
第一个问题的解决方案是从信任库中删除过期的证书
在许多情况下,存在不合规软件未考虑的替代验证路径;您在问题中暗示了这一点。那么,您为什么认为删除过期的 CA 证书可以解决验证问题?在某些情况下可能会,但我们在这里完全不予保留。
如果您有权删除证书,那么您应该有权安装新证书,但是您仍然需要痛苦地对不同的堆栈进行逆向工程,以准确映射它们不合规的原因/找到有效的解决方案。
答案3
Sectigo RSA DV Bundle (Intermediate + Cross Signed)
我通过将其添加到服务器上的捆绑包中来使其工作,该捆绑包是我从Sectigo 支持页面
因此它现在提供 4 个证书:
- 域证书
- Sectigo RSA 域验证安全服务器 CA [ 中级 ]
- USERTrust RSA Root xSigned 使用 AAA CA [交叉签名]
- SHA-2 根:USERTrust RSA 证书颁发机构