如何使iPhone应用程序接受不正确的服务器证书,但只有特定的?

时间:2010-04-20 14:11:22

标签: iphone ssl https certificate

我需要使用私有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?它似乎解决了我的问题的一半,但我想弄清楚如何仍然检查主机证书是我期望看到的并且没有不同。

1 个答案:

答案 0 :(得分:2)

尝试实现NSURLConnection的委托方法

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

然后以下内容将包含主机

[[challenge protectionSpace] host]

然后您可以通过调用以下

之一继续
continueWithoutCredentialForAuthenticationChallenge:

cancelAuthenticationChallenge:

useCredential:forAuthenticationChallenge: