在 iOS7 GM 中接收 SSL 错误 - “AddTrust External CA Root”不受信任?

Posted

技术标签:

【中文标题】在 iOS7 GM 中接收 SSL 错误 - “AddTrust External CA Root”不受信任?【英文标题】:Receiving SSL error in iOS7 GM - "AddTrust External CA Root" is not trusted? 【发布时间】:2013-09-12 05:45:13 【问题描述】:

我在我的 NSURLConnection 类中突然收到来自 ios7 GM 的 SSL 错误。 我无法访问我的任何 API 或 webView 页面,这是一个严重的紧急情况。

有人可以帮我吗?

错误如下:

NSURLConnection/CFURLConnection HTTP 加载失败 (kCFStreamErrorDomainSSL, -9813)

我查了一下错误,解释如下:

errSSLNoRootCert = -9813, /* 证书链未经 root 验证 */

我的域的根证书(通过浏览器访问确认)是

“AddTrust 外部 CA 根”

这不太可能不受信任,因为:

    此根证书甚至列在“iOS5 和 6:受信任的根证书列表”中。 http://support.apple.com/kb/ht5012

    直到 iOS6,甚至直到 iOS7 beta 6,这个错误都从未出现过。 它突然出现在 iOS7 GM 中。

    我的浏览器告诉我它是受信任的证书。

    我的证书的到期日期没有问题。

我想知道这是否是操作系统中的错误,或者我是否必须购买不同根的证书, 或者问题是否出在其他地方。

附:我的 NSURLConnection 周围没有用于处理身份验证挑战的代码。

【问题讨论】:

【参考方案1】:

尝试将中间证书添加到您的(API 的)网络服务器配置中。大多数情况下,它们会与您的真实证书一起发送。

iOS 可能知道(并信任)根证书,但不知道一个(或多个)中间证书(在您的实际证书和真实证书之间)。通过添加它们,iOS 可以确定您的证书和根证书之间的链确实存在。

【讨论】:

【参考方案2】:

这是其他解决方法的列表。

使用 Chrome 或 Puffin 网络浏览器。

在隐私浏览模式下使用 Safari。

见: https://discussions.apple.com/thread/5327078?tstart=0

罗伯特

【讨论】:

【参考方案3】:

如果您想暂时开始,则不是解决方案而是解决方法是覆盖 NSURLConnection 的默认行为。检查https://developer.apple.com/library/ios/technotes/tn2232/_index.html#//apple_ref/doc/uid/DTS40012884-CH1-SECNSURLCONNECTION

【讨论】:

【参考方案4】:

我遇到了类似的问题,只是我的错误是 9814 i.o 9813。 同样的情况,在 iOS6 上工作得很好,在 iOS7 上就不行了。

我调用的 URL 是 https://.... 我将其更改为 http://... 并且它似乎工作正常

不确定它是否适合你,但肯定很奇怪

祝你好运

【讨论】:

将 URL 更改为 http:// 肯定有效,但不幸的是,我们不想通过禁用 SSL 通信来降低安全性......所以这不是一个可行的选择。不过还是谢谢。

以上是关于在 iOS7 GM 中接收 SSL 错误 - “AddTrust External CA Root”不受信任?的主要内容,如果未能解决你的问题,请参考以下文章

iOS7GM UINavigationBar 外观 setBackgroundImage:forBarMetrics:在 UIPopoverController 中不起作用

Phone 5 标签栏不工作 - iOS7 和 Xcode GM

无法使用 Xcode 6 GM Seed 提交到 AppStore

在 IBM MobileFirst Adapter 中使用内部 CA 时,WebSphere Application Server 中出现 SSL 错误

php curl常见错误:SSL错误、bool(false)

iOS 8 GM - 无法安装 IPA