5

在旧 iPhone 上获取 https 请求时遇到问题的其他人。

从连接确实失败并出现错误,错误消息如下。

连接错误:错误域=NSURLErrorDomain Code=-1202“此服务器的证书无效。您可能正在连接到伪装成“www.ourwesbite.co.uk”的服务器,这可能会使您的机密信息面临风险。”

“我们的网站”有一个有效的证书,而且这个问题不会出现在任何新的 iphone/ipod touch 或 ipad 中,只是最旧的 iphone。

这通过在用户单击“确定”到连接错误警报后引发连接错误来影响我的登录工作,登录过程运行良好。但问题是它在登录后影响用户界面。

所以非常想知道是否有其他人在使用旧 iphone 时遇到这样的问题。我的代码没有问题,因为它在模拟器和 ipad/4gen ipod touch 上运行良好。

谢谢

4

2 回答 2

8

我们遇到了这个错误,并且有问题的 iPhone 3g 的日期和时间设置不正确。这意味着所有 SSL 事务都会失败。

我们假设这个 iOS 错误是苹果的问题,而不是我们的问题,因此破解 SSL 证书以使其被忽略不是解决方案!

于 2011-09-01T12:28:22.413 回答
2

好的,即使证书有效,它也会引发错误。所以使用下面的 NSURLConnection 委托方法解决了这个问题。

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

当身份验证受到挑战时,它会被调用。以下代码允许它继续使用 https 连接。

[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];

然后,如果它觉得它不受信任,它就允许连接通过

于 2011-02-02T09:55:48.640 回答