在我们的一个 iOS 应用程序中,将 iOS 设备升级到 iOS8.1 后出现 SSL 错误。任何人都可以帮助我,iOS8 和 iOS8.1 之间有什么区别,ssl 证书有关吗? iOS8.1服务器端需要添加什么证书?
这是来自控制台的日志:
:CFNetwork SSL 握手失败 (-9824) : NSURLConnection/CFURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9824)
最佳答案
您正在使用不受信任的证书连接到站点。 关于错误代码:
其错误域kCFStreamErrorDomainSSL并按照CFStream doc属于该域的错误代码可以在 SecureTransport.h 中找到文件。 根据此文件 -9824 是
errSSLPeerHandshakeFail = -9824, /* handshake failure */
解决方案是从已知的证书颁发机构获取证书,或将该证书添加到钥匙串(keychain)中的受信任证书列表中。
每当您尝试使用不受信任的证书连接到站点时,都会调用以下 API 来对此不受信任的证书做出决定。您很可能需要实现此 NSURLConnectionDelegate method
- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
在此方法中,您可以调用以下命令来调查证书。
SecTrustRef trust = [[challenge protectionSpace] serverTrust];
SecCertificateRef leafCert = SecTrustGetCertificateAtIndex(trust, 0);
关于ios - CoreDova APP 中的 SURLConnection/CFURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9824),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26603535/