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

我在NSURLConnection类中突然从iOS7 GM收到SSL错误。 我无法访问我的任何API或WebView页面,并且是严重的紧急情况。

有人可以帮我吗?

错误如下:

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

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

errSSLNoRootCert = -9813,/ *证书链不通过根validation* /

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

“AddTrust External CA Root”

这是不太可信的,因为:

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

  2. 这个错误从来没有出现过,直到iOS6,甚至直到iOS7 beta6。它突然出现在iOS7 GM。

  3. 我的浏览器告诉我这是一个可信的证书。

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

我想知道这是否是操作系统中的错误,或者是否需要购买不同根的证书,或者是否存在其他问题。

PS我没有代码在我的NSURLConnection处理身份validation的挑战。

尝试将中间证书添加到您的(API)Web服务器configuration中。 大多数时候,他们与你的真正的证书一起发送。

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

以下是其他解决方法的列表。

使用Chrome浏览器或Puffin网页浏览器。

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

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

罗伯特

不是一个解决scheme,而是一个解决方法,如果你想现在就去覆盖NSURLConnection的默认行为。 检查https://developer.apple.com/library/ios/technotes/tn2232/_index.html#//apple_ref/doc/uid/DTS40012884-CH1-SECNSURLCONNECTION

我有一个类似的问题,除了我的错误是9814 io 9813.相同的情况下,iOS6的工作正常,不再与iOS7。

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

不知道它会为你工作,但绝对怪异

祝你好运