【问题标题】:'An SSL error has occurred and a secure connection to the server cannot be made' with verified certificate'发生 SSL 错误,无法与服务器建立安全连接',并带有经过验证的证书
【发布时间】:2016-11-24 02:49:03
【问题描述】:

我收到以下错误消息(每次尝试都相同)

2016-07-20 20:09:28.013 MyApp[1140:374263] CFNetwork SSLHandshake 失败 (-9806) 2016-07-20 20:09:28.014 MyApp [1140:374263] NSURLSession/NSURLConnection HTTP 加载失败 (kCFStreamErrorDomainSSL, -9806) error=Optional(Error Domain=NSURLErrorDomain Code=-1200 "发生 SSL 错误,无法建立与服务器的安全连接。" UserInfo={_kCFStreamErrorCodeKey=-9806, NSLocalizedRecoverySuggestion=您是否仍要连接到服务器? , NSUnderlyingError=0x154dda750 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9806, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9806}}, NSLocalizedDescription=发生 SSL 错误并且无法与服务器建立安全连接。NSErrorFailingURLKey=https://example.com:8080/api/login, NSErrorFailingURLStringKey=https://example.com:8080/api/login, _kCFStreamErrorDomainKey=3})

证书是由letsencrypt 提供的经过验证的证书。我一遍又一遍地测试了我的网络服务器配置,一切似乎都应该如此。

运行命令openssl s_client -connect example.com:8080/api/login -tls1_2 会得到所有预期的结果:

-验证权限为DST Root CA X3,包含在Apples root CA list

-返回码是Verify return code: 0 (ok)

我也跑过digicert等几个ssl诊断工具网站,都没有报错结果。


我可以从 iOS 设备上的 Safari 加载域,也可以从我的计算机加载 chrome,而无需接受“不受信任的证书”。

有什么建议吗?

【问题讨论】:

    标签: ios ssl https


    【解决方案1】:

    如果有人遇到同样的问题,请回答我自己的问题。 在提出问题时,Let's Encrypt(所用证书的 CA)不支持他们的 https 证书(至少不是我得到的证书)的 前向保密。 Apple 在当时使用的 iOS 版本中默认要求此功能(我相信它是 9.5 左右,但我可能在这里弄错了)。

    要绕过前向保密的要求,可以在 Info.plist 中的域例外下指定。

    <key>NSAppTransportSecurity</key>
    <dict>
      <key>NSExceptionDomains</key>
      <dict>
        <key>example.com</key>
        <dict>
          <key>NSTemporaryExceptionRequiresForwardSecrecy</key>
          <false/>
        </dict>
      </dict>
    </dict>
    

    在路上的某个时候,他们将其更改为默认土地为 false。我不确定这是什么时候发生的,但在 iOS 10.0 之后它就不再是问题了。

    【讨论】:

    • 那么在哪里可以找到这个文件呢? Info.plist,我在 Joomla 网站上尝试播放视频时遇到了这个问题
    猜你喜欢
    • 2012-07-25
    • 2013-10-11
    • 2019-06-26
    • 2016-02-28
    • 2015-12-21
    • 2020-11-02
    • 2018-06-06
    • 1970-01-01
    • 2017-09-03
    相关资源
    最近更新 更多