证书不被信任解决方法

来源:互联网 发布:淘宝代运营销售好做吗 编辑:程序博客网 时间:2024/04/30 08:44

早上请求接口出现下列错误:
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                    <Foundation/NSURLAuthenticationChallenge.h> 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.