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