Mac OS X Lion 10.7.2 更新破坏了 SSL

Mac OS X Lion 10.7.2 更新破坏了 SSL

概括

从 10.7.1 更新到 10.7.2 后,Safari 和 Google Chrome 都无法加载 GMail。到处都是旋转的沙滩球。

问题不在于 GMail;Firefox 可以正常加载 GMail。

问题并不仅限于 Safari 或 Google Chrome;其他应用程序也存在 SSL 问题:Gilgamesh 和 Safari。任何使用 WebKit(Google Chrome、Safari)或 Cocoa 库(Gilgamesh)访问互联网的程序都无法加载安全网站。

网上的各种论坛提出了一些修复方法,但都不起作用。

分析

修复#1:打开 Keychain Access.app 并删除未知证书。

10.7.2 更新还阻止加载 Keychain Access。Keychain 程序本身正在旋转 Beachballs。

修复#2:删除~/Library/Keychains/login.keychain 和 /Library/Keychains/System.keychain。

这暂时解决了问题,并允许您加载安全站点,但重新启动或休眠一两分钟后,修复就会神奇地撤消,因此您必须一遍又一遍地删除这些文件。

修复#3:删除〜/ Library / Application \ Support / Mob *和/ Library / Application \ Support / Mob *。

有传言称,新的 MobileMe/iCloud 服务 ubd 导致了此问题。此修复无法解决此问题。

修复#4:打开 Keychain Access,打开“首选项”,然后禁用 OCSP 和 CRL。

此修复不能解决问题。

修复 #5:使用 10.7.0 -> 10.7.2 组合安装程序,而不是 10.7.1 -> 10.7.2 安装程序。

当我运行组合安装程序,它永远停留在“正在验证软件包...”屏幕上。组合安装程序本身有问题,He||。

http://speely.files.wordpress.com/2011/10/validating-packages.png

我强制退出安装程序,运行“sudo killall installd”强制退出后台安装程序进程,然后重新运行组合安装程序。

同样的问题:它停留在“验证包......”

回顾

唯一有效的解决方法是删除钥匙串,但每次重启或从休眠状态唤醒时都必须这样做。有证据表明 ubd 不断破坏钥匙串文件,但建议的 ubd 修复方法是删除 ~/Library/Application\ Support/Mob* 和 /Library/Application\ Support/Mob*,但这并不能解决这个问题。

显然,有什么东西在一次又一次地损坏钥匙链。

还发布在Apple 支持社区

答案1

我想补充一点,MobileMe 现在是 iCloud,所以文件夹不是 Application Support/Mobi*,而是 Application Support/Ubiquity。

删除它,虽然我得到的结果好坏参半。它只起作用了 1/3 次。绝对有效的方法是删除:

~/Library/Keychains/login.keychain 和 /Library/Keychains/System.keychain

只需重复上述步骤即可。我不确定 Keychain Access 何时会坏掉,但在某些时候(对我来说通常是 3 天左右),一切都会停止工作。

Firefox 似乎可以绕过这些问题,如果您什么都不想做,您可以关闭 Firefox 中的 OCSP(about:config),只需登录无线门户,然后记得将其重新打开。但这无法修复 Safari 或 Chrome(Opera 上有什么词?)

但最好的解决方案是恢复到 10.7.1 或 10.7。我碰巧有之前的 DMG 文件,它是 10.7.1。执行“重新安装”只会复制您的 Lion 系统文件并保持整个安装完好无损。因此,您实际上只是重新安装操作系统,但保留了所有应用程序和数据。到目前为止,这很完美。请记住,如果您要回滚,请不要更新到 10.7.2。

答案2

我们的 Mac 支持人员已成功运行磁盘战士解决问题。到目前为止,他的客户中还没有人报告过该问题再次出现。

更新:

我已经找到了解决办法。出现此问题的原因是强制门户会回复所有内容。我调整了强制门户的 DNS,导致 OCSP 和 CRL 站点的结果不佳。在这种情况下,我使用了 127.0.0.1。请求现在超时,而不是返回不正确的数据。它也可以在本地工作,方法是更改​​“/private/etc/hosts”并添加如下条目:

127.0.0.1    crl.usertrust.com
127.0.0.1    ocsp.usertrust.com
127.0.0.1    crl.incommon.org
127.0.0.1    ocsp.incommon.org

正确的条目可能取决于证书的 CA。我在使用 Wireshark 观察连接时发现了这些地址。

答案3

经过数周的挫折,这个问题不断出现(并等待苹果发布修复程序),我决定寻找任何可以从 10.7.2 更新回滚的解决方案。不幸的是,我没有找到任何方法可以回滚到 10.7.1 或 10.7.0。

因此,我决定使用 Lion Recovery,看看它对情况有何影响。我按照这篇 Apple 支持文章

我很高兴地告诉大家,就我的情况而言,问题已经(希望)消失了!出于某种原因,尽管 Lion Recovery 过程将 OS X 重新安装回了 10.7.2 版本,但一周多以来我都没有遇到任何 Keychain 或 SSL 问题。

我使用了在线恢复模式,似乎在恢复过程中下载的 OS X 版本确实有一些不会损坏钥匙串的设置。 Lion 恢复过程非常顺利,我无需重新安装任何应用程序或从备份中恢复文件(我仍然建议进行备份)。我的 MacBook Pro 是 5.1 版。

对于我来说,这是 Apple 的安全更新第一次对 OS X 造成如此大的破坏。我仍然想知道为什么他们没有发布修复程序/更新来纠正此问题。

答案4

根据我的经验,这种情况仅在通过强制门户进行连接时才会发生。我认为原因是操作系统尝试验证强制门户登录页面的证书,但验证过程需要互联网访问。我能够通过手动将强制门户页面的证书添加到钥匙串并将其标记为始终信任来解决这个问题。

您可以按照以下步骤导出证书:

  1. 访问 Firefox 中的强制门户页面
  2. 选择Tools > Page Info > Security > View Certificate > Details > Export
  3. 将证书以“.crt”扩展名保存到硬盘上

您可以按照以下步骤导入证书:

  1. 打开Keychain Access.app
  2. 将证书从 Finder 拖到钥匙串中
  3. 双击证书并展开“信任”部分
  4. 选择“使用此证书时:Always Trust
  5. 关闭弹出窗口

如果由于钥匙串损坏而无法打开钥匙串访问,请关闭无线,删除~/Library/Keychains/login.keychain/Library/Keychains/System.keychain,然后重新启动。

相关内容