如何在iPhone模拟器中使用不受信任的服务器证书向主机发送HTTPS请求?

时间:2010-01-12 16:57:32

标签: iphone https certificate ios-simulator

我开发了一个iPhone框架,它发送HTTPS请求以便与公共可用的后端服务器通信。目前,我对不受信任的服务器证书存在很大问题。

后端服务器的证书未由受信任的CA签名,因此我的第一种方法是使用NSURLRequest的私有allowAnyHTTPSCertificateForHost。虽然这可以按预期工作,并且作为临时解决方案很好,但我们的客户要求最终结果是干净的解决方案。因此,我编写了一个方法,允许从钥匙串中的文件系统安装提供的证书,但此方法在iPhone模拟器中无法正常工作。证书安装在主机的Mac OS X钥匙串中。不幸的是,如果我调用NSURLConnection的sendSynchronousRequest方法,我会检索“不受信任的服务器证书”错误。好像NSURLConnection无法访问主机的Mac OS X钥匙串来检索证书。

我的猜测是正确还是我错过了什么?

如果我在真正的iPhone设备上运行我的应用程序(我还没有可用的应用程序),我的方法是否有效?

iPhone模拟器中是否存在钥匙串?

是否可以将HTTPS请求发送到iPhone模拟器上具有不受信任证书的服务器,或者我是否必须使用预编译器指令来实现不同的例程,具体取决于底层平台(模拟器或设备)?

非常感谢任何帮助。

谢谢, 的Matthias

3 个答案:

答案 0 :(得分:1)

您可以在http://startssl.com

获取免费的受信任SSL证书

答案 1 :(得分:0)

也许ASIHTTPRequest库可以帮助解决这个问题?

答案 2 :(得分:0)

是的,同意Beat Bolli,但是我已经通过NSURL请求做了这件事。可能你正在跳过spmething。