CoreDova APP中的SURLConnection / CFURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9824)

时间:2014-10-28 08:13:12

标签: ios ajax ios8.1

在我们的iOS应用程序中,我们在将iOS设备升级到iOS8.1后出现SSL错误。任何人都可以帮助我,iOS8和iOS8.1有什么区别,ssl证书有关吗?在服务器端需要为iOS8.1添加哪种证书?

这是来自控制台的日志:

:CFNetwork SSLHandshake失败(-9824)  :NSURLConnection / CFURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9824)

1 个答案:

答案 0 :(得分:2)

您正在使用不受信任的证书连接到网站。 关于错误代码:

可以在CFStream doc文件中找到其错误域 kCFStreamErrorDomainSSL 以及属于此域的 SecureTransport.h 错误代码。 根据这个文件-9824是

errSSLPeerHandshakeFail     = -9824,    /* handshake failure */

解决方案是从已知的证书颁发机构获取证书,或将该证书添加到密钥链中的可信证书列表中。

每当您尝试使用不受信任的证书连接到站点时,都会调用API来对此不受信任的证书做出决定。您最有可能需要实现此NSURLConnectionDelegate method

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge

在此方法中,您可以调用以下内容来调查证书。

SecTrustRef trust = [[challenge protectionSpace] serverTrust];
SecCertificateRef leafCert = SecTrustGetCertificateAtIndex(trust, 0);