发生 SSL 错误

Posted

技术标签:

【中文标题】发生 SSL 错误【英文标题】:SSL error has occured 【发布时间】:2018-06-18 08:04:49 【问题描述】:

我在 iTunes 上上传了我的应用程序,它也是实时的,但在某些设备上(主要是 iPhone7)。将 Xcode 或 ios 版本升级到 11.4 后,出现 SSL 连接错误。 在 iphone 6s 或 ipad 上工作正常,但在客户端 iphone 7 上发生此错误附有错误的屏幕截图,我无法理解发生了什么,需要更改什么。

我已经在 info plist 中添加了这段代码

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSExceptionDomains</key>
        <dict>
            <key>yourdomain.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
        </dict>
    </dict>

我们还会检查服务器证书是否有效。

【问题讨论】:

【参考方案1】:

首先检查您的端口是否有 SSL 并更正用于 SSL 固定的证书

检查 SSL 代码

 - (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace 
      return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust];
    

    - (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge 
      if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust])
        if ([trustedHosts containsObject:challenge.protectionSpace.host])
          [challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];

      [challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
    

【讨论】:

以上是关于发生 SSL 错误的主要内容,如果未能解决你的问题,请参考以下文章

发生ssl错误 无法建立到该服务器的安全连接

苹果手机发生了SSL错误无法链接怎么办?

发生ssl错误 无法建立到该服务器的安全连接

发生 SSL 错误

xcode - 机器人创建失败并出现错误:发生 SSL 错误,无法与服务器建立安全连接

iOS9 PayPal SDK - “发生 SSL 错误......”