我正在尝试使用 didReceiveAuthentication Challenge 实现 SSL 固定并且我做到了。但是,我确实有一个问题,就是这个函数的描述
https://developer.apple.com/documentation/webkit/wknavigationdelegate/1455638-webview?language=objc
它的 URLSession 版本也是如此,两者都提到仅当收到挑战时。我担心的是,会不会有网站根本不要求客户证书?如果是这样,我应该如何进行 SSL 固定?
最佳答案
客户端证书固定与客户端证书无关。 didReceiveAuthenticationChallenge:
也被调用以响应接收服务器的证书。在这种情况下,调用时将 protectionSpace.authenticationMethod
设置为 NSURLAuthenticationMethodServerTrust
。如果服务器请求客户端证书,将使用 ...ClientCertificate
再次调用它。如果需要 Basic Auth,将使用 ...HTTPBasic
等再次调用它。
关于swift - 快速和身份验证挑战中的 SSL Pinning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54026760/