ASIHTTP请求:如何处理SSL证书

ASIHTTP请求:如何处理SSL证书,ssl,asihttprequest,nsstream,cfnetwork,cfstream,Ssl,Asihttprequest,Nsstream,Cfnetwork,Cfstream,我在我的项目中使用ASITP,我需要支持有或没有客户端证书的SSL连接。 在我看来,SSL握手期间可能出现四种情况: 案例A:服务器提供受信任的证书,但不要求客户端提供证书(例如,…) 案例B:服务器提供自签名证书,但不要求客户端提供(例如) 案例C:服务器提供一个受信任的证书,并要求客户端提供一个 案例D:服务器提供一个自签名证书,并要求客户端提供一个 ASIHTT支持案例A,没有问题 案例C也受支持,但我必须在开始请求之前提供SecIdentityRef: [request setCli

我在我的项目中使用ASITP,我需要支持有或没有客户端证书的SSL连接。 在我看来,SSL握手期间可能出现四种情况:

  • 案例A:服务器提供受信任的证书,但不要求客户端提供证书(例如,…)

  • 案例B:服务器提供自签名证书,但不要求客户端提供(例如)

  • 案例C:服务器提供一个受信任的证书,并要求客户端提供一个

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

ASIHTT支持案例A,没有问题

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

[request setClientCertificateIdentity:identity];
其他情况不受支持(没有完全关闭CFStream级别的证书验证,这是我不想做的)

对我来说,我希望ASIHTT的正常行为是向代表询问案例B、C和D。 对于案例B和D,应该要求代理信任或不信任服务器证书(就像在web浏览器中一样)。 对于案例C和D,还应要求学员提供证书

ASIHTT基于CFStream连接。有没有办法配置CFStream,使其返回与案例B、C和D不同的错误?然后,检测这些错误并用正确的回调通知委托

谢谢你的帮助