5

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

有人可以在这里帮助我吗?

错误如下:

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

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

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

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

“AddTrust 外部 CA 根”

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

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

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

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

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

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

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

4

4 回答 4

3

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

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

于 2013-09-14T10:00:50.383 回答
0

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

使用 Chrome 或 Puffin 网络浏览器。

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

请参阅: https ://discussions.apple.com/thread/5327078?tstart=0

罗伯特

于 2013-09-24T15:21:58.133 回答
0

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

于 2014-06-19T09:48:18.457 回答
-4

我遇到了类似的问题,除了我的错误是 9814 io 9813。同样的情况,在 iOS6 上运行良好,在 iOS7 上不再运行。

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

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

祝你好运

于 2013-09-14T09:25:35.210 回答