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

我在我的 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. 我的证书的到期日期没有问题。

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

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

【问题讨论】:

    标签: ios ssl nsurlconnection ios7


    【解决方案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 通信来降低安全性......所以这不是一个可行的选择。不过还是谢谢。
          猜你喜欢
          • 2020-09-18
          • 2020-07-11
          • 2015-02-14
          • 1970-01-01
          • 1970-01-01
          • 2023-03-05
          • 2012-01-29
          • 1970-01-01
          • 2015-11-02
          相关资源
          最近更新 更多