1

我正在处理的应用程序需要通过 https 连接到 Web 服务,该证书是受信任且有效的。

我用过 NSURLConnection 是以前的项目在 http 上使用soap

谁能指出上述两种情况之间的区别,我还需要了解通过 https 连接时到底发生了什么,证书是否自动存储在设备上,ssl 握手是如何发生的。

任何指向这个方向的指针都会非常有帮助。

问候,伊山

4

2 回答 2

1

如果证书是由 Apple 信任其根的证书颁发机构链颁发的,则无需执行任何操作。iOS 设备将接受证书,只要它在其他方面有效(即未过期、未撤销等)。

如果Apple信任 CA 链的根,则需要将根的证书下载到手机。这可以通过 iPhone 配置实用程序来完成(我认为)。企业配置方案无疑也支持这一点。

于 2012-04-24T17:57:48.057 回答
1

我需要澄清一下。证书是由 Apple 签署以用于通知,还是由 SSL 根证书颁发机构(如 VeriSign)签署?

Apple 签名证书仅用于 WebServer 到 Apple 服务器的通信,如 Apple 推送通知服务。它们不适用于 iOS 设备到 WebServer。

由 SSL 根证书颁发机构签署的 SSL 证书应该可以正常工作。


我认为您正在寻找基于 SSL/TLS 的 HTTP 入门。所以,就这样吧。

HTTP 是一个未加密的通道。请求和响应在纯文本数据流中。HTTPS 是一个加密通道。请求和响应位于使用共享主密钥加密的数据流中。SSL/TLS 的神奇之处在于这个加密通道是如何创建的。

首先,客户端和服务器互相打招呼(在清晰的频道中)。接下来,客户端下载服务器的公共证书(在一个清晰的通道中)。

此时,客户端有一些工作要做。它需要验证证书。它需要知道它理解证书,日期范围是有效的,证书是由受信任的证书颁发机构签名的,并且证书没有被吊销。

现在,客户端知道它可以信任服务器。

接下来,它发送一些用服务器的公钥(在服务器的公共证书中)加密的短消息。这些消息只能通过服务器的私钥解密(只有服务器知道)。这些消息允许客户端和服务器协商主密钥。

最后,客户端和服务器使用新创建的加密通道开始正常的 HTTP 请求和响应。

我希望这就是你要找的。有关更详细的说明,请参见:http ://www.moserware.com/2009/06/first-few-milliseconds-of-https.html

于 2012-04-24T19:33:44.287 回答