如果客户端未在 iOS 中提供客户端证书,SSL 连接能否成功?



考虑使用正在实现didReceiveAuthenticationChallenge的NSURLConnectionDataDelegate。

如果代理收到身份验证质询,且protectionSpace为NSURLAuthenticationMethodClientCertificate,则不提供,只需执行以下操作即可。

[challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];

服务器有两个选项。

  1. 如果它想要证书,它可以简单地终止连接,iOS NSURLConnection将引发错误NSURLErrorClientCertificateRequired

  2. 如果服务器想要继续,它可以通过不切断连接来完成,并且委托应该接收到对didReceiveAuthenticationChallenge的另一个调用。

我无法具体验证这一假设。我想iOS的NSURL堆栈也可能会成为障碍。但我正在寻找对这个假设的某种验证。

您必须在服务器上安装SSL证书,并且当您尝试访问API时。那么你应该使用https而不是http。希望这能帮助你。。。

最新更新