我正在处理的应用程序需要通过https连接到Web服务,证书是可信且有效的。
我曾经使用NSURLConnection以前的项目使用soap而不是http
请有人指出上述两种情况之间的区别, 我还需要了解通过https连接时究竟发生了什么,是自动存储在设备上的证书,ssl握手是如何发生的。
这方面的任何指针都会非常有用。
此致 伊森
答案 0 :(得分:1)
如果证书是由Apple信任其根目录的证书颁发机构链发布的,则无需执行任何操作。 iOS设备将接受证书,只要该证书有效(即未过期,未撤销等)。
如果CA链的根目录
答案 1 :(得分:1)
我需要澄清一下。 Apple签署的证书是用于通知还是由SSL根证书颁发机构(如VeriSign)签署?
Apple签名证书仅用于WebServer与Apple推送通知服务之类的Apple Server通信。它们不适用于iOS设备到WebServer。
由SSL根证书颁发机构签名的SSL证书应该可以正常工作。
我认为您正在寻找HTTP over SSL / TLS入门。所以,就在这里。
HTTP是一个未加密的频道。请求和响应位于纯文本数据流中。 HTTPS是加密通道。请求和响应位于使用共享主密钥加密的数据流中。 SSL / TLS的神奇之处在于如何创建此加密通道。
首先,客户端和服务器互相打招呼(在一个明确的通道中)。 接下来,客户端下载服务器的公共证书(在明确的通道中)。
此时,客户端还有一些工作要做。它需要验证证书。它需要知道它了解证书,日期范围有效,证书由受信任的证书颁发机构签名,以及证书尚未被撤销。
现在,客户端知道它可以信任服务器。
接下来,它发送一些使用服务器公钥加密的短消息(位于服务器的公共证书中)。这些消息只能由服务器的私钥解密(只有服务器知道)。这些消息允许客户端和服务器协商主密钥。
最后,客户端和服务器使用新创建的加密通道开始正常的HTTP请求和响应。
我希望这就是你要找的东西。有关更详细的说明,请参阅:http://www.moserware.com/2009/06/first-few-milliseconds-of-https.html