- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个应用程序可以通过 http 正常连接。尝试 https 时,我收到错误消息,指出根证书不受信任。我找到了我的站点证书、它的 CA 证书和 CA 的根证书的 URL,并通过 Safari 将它们添加到手机中。现在,当我转到 Preferences -> General -> Profiles 时,我可以看到我所有的证书一直向上链。每张证书上都有一个红色的未签名标签。仍然在我连接时收到 NSURLErrorServerCertificateUntrusted 错误。我在想下一步该去哪里。
任何帮助都会很棒。唯一可能影响这一点的是我连接到一个奇怪的端口。所以我的网址是 www.domain.com:port。端口号是否创建证书-域名不匹配?
现在我已经使用 iPhone 配置实用程序将配置文件添加到手机。它有我的根证书、CA 证书和站点证书。电话上的个人资料显示已通过验证。在详细信息中,我可以看到我的三个证书。但是当我尝试连接时,我仍然收到不受信任的证书错误。有什么建议吗?
只是想看看是否还有其他人可以提供帮助?
最佳答案
有一个受支持的 API,用于在 NSURLConnection 加载期间忽略错误的证书。为此,只需将类似这样的内容添加到您的 NSURLConnection 委托(delegate)中:
- (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,如有必要,在向用户显示对话框等之后。
关于iphone - 带 NSURLConnection 的 HTTPS - NSURLErrorServerCertificateUntrusted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1578121/
我有一个应用程序可以通过 http 正常连接。尝试 https 时,我收到错误消息,指出根证书不受信任。我找到了我的站点证书、它的 CA 证书和 CA 的根证书的 URL,并通过 Safari 将它们
我正在通过 urlSessionDelegate 以自定义方式处理服务器信任身份验证质询(将服务器信任的公钥与哈希本地版本进行比较) ,类似于这里的做法: How do I accept a self
我是一名优秀的程序员,十分优秀!