ASIHTTP请求:如何处理SSL证书

时间:2012-11-23 17:56:13

标签: ssl asihttprequest nsstream cfnetwork cfstream

我在我的项目中使用ASIHTTP,我需要支持带或不带客户端证书的SSL连接。 从我的角度来看,在SSL握手期间可能有四种情况:

  • 案例A:服务器提供可信证书,但不要求客户提供证书(例如https://www.gmail.com,...)

  • 案例B:服务器提供自签名证书但不要求客户提供证书(例如https://www.cacert.org/images/cacert4.png

  • 案例C:服务器提供可信证书并要求客户提供一个

  • 案例D:服务器提供自签名证书并要求客户提供

ASIHTTP支持案例A没有问题。

也支持案例C,但在开始请求之前我必须提供一个SecIdentityRef:

[request setClientCertificateIdentity:identity];

不支持其他情况(没有完全关闭CFStream级别的证书验证,我不想这样做。)

对我来说,我想从ASIHTTP获得的正常行为是向代表询问案例B,C和D. 对于案例B和D,应要求代表信任或不信任服务器证书(就像在Web浏览器中完成一样)。 对于案例C和D,还应要求代表提供证书。

ASIHTTP基于CFStream连接。有没有办法配置CFStream,以便从案例B,C和D返回不同的错误?然后,检测这些错误并通过正确的回调通知代理?

感谢您的帮助。

0 个答案:

没有答案