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