iphone - 如何让 iPhone 应用程序接受不正确的服务器证书但只接受特定的服务器证书?

标签 iphone ssl https certificate

我需要使用私有(private) HTTPS API,而客户端在主机上的证书不正确。 证书适用于 www.clienthost.com,我正在使用 api.clienthost.com。 所以我需要通过 HTTPS 连接到 api.clienthost.com,忽略不正确的证书,但仍然确保它是 www.clienthost.com 的证书,而不是其他证书。 我找到了这个答案:How to use NSURLConnection to connect with SSL for an untrusted cert?它似乎解决了我一半的问题,但我想弄清楚如何仍然检查主机证书是否是我希望看到的,并且没有什么不同。

最佳答案

尝试实现 NSURLConnection 的委托(delegate)方法

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge

那么下面会包含主机

[[challenge protectionSpace] host]

然后您可以通过调用以下方法之一继续操作

continueWithoutCredentialForAuthenticationChallenge:

cancelAuthenticationChallenge:

useCredential:forAuthenticationChallenge:

关于iphone - 如何让 iPhone 应用程序接受不正确的服务器证书但只接受特定的服务器证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2675782/

相关文章:

ssl - Camel iMap - 忽略 SSL 证书

security - 使用 Jmeter 记录 Gmail

c# - 尝试从 WebAPI 获取 GET 时无法验证 HTTPS 连接

django - 带有 django 和 mod_wsgi 的基于 SSL 的虚拟主机

c# - SignalR - 无法为 SSL/TLS 安全通道建立信任关系

iphone - 显示 HUD 的 OpenGL ES 在纹理 3D 对象顶部没有颜色

javascript - 触摸结束后,是否有任何事件可以在 iOS 设备上使用 jQuery 检测动量滚动?

iphone - NSMutablearray 自动替换以前的值

iphone - 如何通过 facebook API 在 friend 的墙上同时发布文本、图像和链接

ssl - 如何使用 Schannel API 添加 SNI 客户端问候扩展?