如何解决旧移动设备上 Sectigo 证书过期的问题?

如何解决旧移动设备上 Sectigo 证书过期的问题?

正如你可能 知道,Sectigo 颁发的 CA 证书最近已过期。这影响了某些移动应用程序,甚至网站,导致它们无法连接到所需的网络资源。

这可能会因两(三个)原因而影响申请:

  • 该应用程序可能使用了不正确的机制来验证证书(如参考文章中详述的那样)。
  • 应用程序可能没有替换证书。对于制造商不再支持的旧设备,情况就是如此。
  • 以上两者皆有。

第一个问题的解决方案是从信任存储中删除过期的证书。那么第二个问题呢?用户可以做些什么来解决这个问题?

(请不要讨论是否任何人都应该使用这样的设备。不是每个人都能负担得起每年花费 200 至 1000 美元左右购买新设备的费用。)

答案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 个证书:

  1. 域证书
  2. Sectigo RSA 域验证安全服务器 CA [ 中级 ]
  3. USERTrust RSA Root xSigned 使用 AAA CA [交叉签名]
  4. SHA-2 根:USERTrust RSA 证书颁发机构

相关内容