我有一个可以通过 http 连接良好的应用程序。尝试 https 时,我收到错误消息,指出根证书不受信任。我找到了我的站点证书、其 CA 证书和 CA 根证书的 URL,并通过 Safari 将它们添加到手机中。现在,当我进入“首选项”->“常规”->“配置文件”时,我可以看到我的所有证书一直在链上。每张证书上都有一个未签名的红色标签。当我连接时,我仍然收到 NSURLErrorServerCertificateUntrusted 错误。我正在考虑下一步该去哪里。
任何帮助都会很棒。唯一可能影响此问题的事情是我正在连接到一个奇怪的端口。所以我的网址是 www.domain.com:port。端口号是否会导致证书-域名不匹配?
现在我已经使用 iPhone 配置实用程序将配置文件添加到手机中。它有我的根证书、ca 证书和站点证书。手机上的个人资料显示已验证。在详细信息中我可以看到我的三张证书。但是当我尝试连接时,我仍然收到不受信任的证书错误。有什么建议么?
只是想看看其他人是否可以提供帮助?
有一个受支持的 API,用于在 NSURLConnection 加载期间忽略错误的证书。为此,只需将类似的内容添加到您的 NSURLConnection 委托中:
- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace {
return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust];
}
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust])
if (... user allows connection despite bad certificate ...)
[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];
[challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
}
请注意,connection:didReceiveAuthenticationChallenge: 可以在(很长时间)之后(在必要时向用户显示对话框等之后)将其消息发送到challenge.sender。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)