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

ash*_*ina 5 ssl nsurlconnection ios ios7

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

有人可以帮我吗?

错误如下:

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

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

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

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

“添加信任外部 CA 根”

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

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

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

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

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

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

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

Jon*_*han 3

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

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