我目前正在尝试使用自签名证书连接到服务器.我正在使用NSURLConnection连接到服务器.如何确保我只信任正确的服务器并取消所有其他连接?我使用以下代码
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
SecTrustResultType results;
SecTrustRef trust = [[challenge protectionSpace] serverTrust];
SecTrustEvaluate(trust, &results);
if (results == kSecTrustResultProceed || results == kSecTrustResultConfirm) {
[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];
} else {
[challenge.sender cancelAuthenticationChallenge:challenge];
}
}
Run Code Online (Sandbox Code Playgroud)
目前SecTrustEvaluate总是返回结果等于kSecTrustResultRecoverableTrustFailure.我已使用iphone配置实用程序在手机上安装了带证书的配置文件,并将其标记为已验证,但未更改结果.
任何人都可以帮我获得任何一个kSecTrustResultProceed或kSecTrustResultConfirm自签名证书的信任结果吗?