证书不被信任解决方法

早上请求接口出现下列错误:
xml parser error:Error Domain=NSURLErrorDomain Code=-1202 “此服务器的证书无效。您可能正在连接到一个伪装成“192.168.2.61”的服务器,这会威胁到您的机密信息的安全。” UserInfo=0x190c7ce0 {NSLocalizedDescription=此服务器的证书无效。您可能正在连接到一个伪装成“192.168.2.61”的服务器,这会威胁到您的机密信息的安全。, NSLocalizedRecoverySuggestion=您仍要连接此服务器吗?, _kCFStreamErrorCodeKey=-9813, NSErrorFailingURLStringKey=”……….”_kCFStreamErrorDomainKey=3, NSURLErrorFailingURLPeerTrustErrorKey=, NSUnderlyingError=0x190bdcc0 “此服务器的证书无效。您可能正在连接到一个伪装成“192.168.2.61”的服务器,这会威胁到您的机密信息的安全。”, NSErrorFailingURLKey=”………..”}

对于自签名证书,NSURLConnection对象无法验证服务端证书的真伪;我的解决方法:
意思就是添加

-(void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
    NSLog(@"This will execute successfully!");
    if ([[challenge protectionSpace] authenticationMethod] == NSURLAuthenticationMethodServerTrust) {
        [[challenge sender] useCredential:[NSURLCredential credentialForTrust:[[challenge protectionSpace] serverTrust]] forAuthenticationChallenge:challenge];
    }
}

关于处理各种类型的更多信息
的认证挑战。

connection:willSendRequestForAuthenticationChallenge:
                    is the preferred (Mac OS X 10.7 and iOS 5.0 or
                    later) mechanism for responding to authentication
                    challenges.  See
                     for
                    more information on dealing with the various types
                    of authenticationchallenges.
                    connection:canAuthenticateAgainstProtectionSpace:
                    connection:didReciveAuthenticationChallenge:
                    connection:didCancelAuthenticationChallenge: are
                    deprected and new code should adopt
                    connection:willSendRequestForAuthenticationChallenge.
                    The older delegates will still be called for
                    compatability, but incur more latency in dealing
                    with the authentication challenge.

你可能感兴趣的:(iOS)