NSURLAuthenticationMethodClientCertificate存在无法返回的问题

时间:2017-09-22 08:27:32

标签: objective-c openssl mutual-authentication

我在iOS 10中使用相互身份验证,if语句相互认证正常工作。

-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
  if ([protectionSpace authenticationMethod] == NSURLAuthenticationMethodServerTrust) {

// do something

} else if ([protectionSpace authenticationMethod] == NSURLAuthenticationMethodClientCertificate)  {

// Do something

}
}

在iOS 10中,响应返回

 NSURLProtectionSpace* protectionSpace = challenge.protectionSpace;

NSURLAuthenticationMethodClientCertificate

问题出在iOS 11的响应中:

NSURLAuthenticationMethodServerTrust

如何强制该响应返回 NSURLAuthenticationMethodClientCertificate 第一个tome而不是 NSURLAuthenticationMethodServerTrust

感谢任何帮助:)

1 个答案:

答案 0 :(得分:0)

经过几个小时的研究,我将在这里回答。 在iOS 11中, NSURLAuthenticationMethodServerTrust 始终首先到达,然后传递给 NSURLAuthenticationMethodClientCertificate ,但在iOS 10中,它的工作正好相反。