【问题标题】:Intermittent SSL Error间歇性 SSL 错误
【发布时间】:2016-05-20 06:41:32
【问题描述】:

在 iOS 上遇到间歇性 SSL 错误。 我已经关闭了 ATS,我们知道这会发生在操作系统版本

Error Domain=NSURLErrorDomain Code=1011 “发生 SSL 错误并且 无法建立与服务器的安全连接。” UserInfo={NSLocalizedDescription=发生 SSL 错误并且 无法建立与服务器的安全连接。, NSLocalizedRecoverySuggestion=你想连接到服务器吗 无论如何?, _kCFStreamErrorCodeKey=-9806 NSErrorFailingURLStringKey=, _kCFStreamErrorDomainKey=3, NSUnderlyingError=0x1471b600

从我们的 crittercism 日志中,似乎有些用户能够复制这一点。但我们一直没能

Would you like to connect to the server anyway?

kCFStreamErrorCodeKey=-9806

编辑:

-9806 表示errSSLClosedAbort http://www.opensource.apple.com/source/Security/Security-55179.13/libsecurity_ssl/Security/SecureTransport.h

是什么原因造成的?我不认为这是由于网络不稳定,因为从我们的跟踪工具来看,与其他主机的 SSL 连接似乎没问题。当用户遇到这个问题时,它是可重现的。在我看来,我们需要使用wireshark检查故障以获取更多信息。但我们无法重新制作这个。有没有人有想法从野外的应用程序中记录更多信息来调试这个?

【问题讨论】:

  • 您确定证书有效,而不是自签名证书?
  • 是的,我们已经检查了证书。我不得不提到,我们的一些用户在野外可以重现这一点。但我们不能自己复制它:/
  • 您是否有多个服务器为请求提供服务?
  • 您能否提供服务器名称,以便我们尝试点击它并自己查看证书?
  • @allen 是的,有 3 个,并且所有 3 个服务器证书都已正确设置。

标签: ios iphone ssl


【解决方案1】:

服务器 SSL 证书未通过内置证书验证。由您决定如何处理此问题并向用户提供正确的补救措施。发生这种情况的原因有很多。

SSL 信任评估在Technical Note 2232: SSL Trust Evaluation 中有详细描述。

【讨论】:

  • 我们按照这个 [post](stackoverflow.com/questions/36331623/…) 执行了这个命令nscurl --ats-diagnostics https://filename.hostname.net --verbose,每个案例都通过了,但我们仍然面临这个间歇性 SSL 错误。有什么想法吗?
【解决方案2】:

我在几个场景中遇到过类似的错误:

  • 通过https://www.domainname.com 而不是https://domainname.com(注意“www.”)访问服务器,在这种情况下,由于我签署证书的方式使其无效。 (我后来发现如何使证书对两个地址都有效,并使用 virtualHost 和 htaccess 始终推送到 www.jeremiedaigle.com)
  • 我的负载服务器设置不正确。其中一台服务器有证书,另一台没有。
  • 最后,我在调试和尝试使用自签名证书时也遇到了这个问题,因为我使用代理 (CharlesProxy) 中间人来调试我的请求。中间人证书,在这种情况下必须被设备信任。您可以通过电子邮件发送证书并在设备上打开它来执行此操作。

【讨论】:

    猜你喜欢
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2016-10-31
    • 2013-05-15
    • 1970-01-01
    • 2020-04-04
    相关资源
    最近更新 更多