swift 中的 SSL Pinning 和身份验证质询

SSL Pinning in swift and authentication challenge

我正在尝试使用 didReceiveAuthentication Challenge 实现 SSL 固定并且我做到了。但是,我确实有一个问题,就是这个函数的描述

https://developer.apple.com/documentation/webkit/wknavigationdelegate/1455638-webview?language=objc

它的 URLSession 版本也是如此,两者都提到只有在收到挑战时。我担心的是,会不会有网站根本不要求客户证书?如果是这样,那我该如何进行 SSL 固定?

客户端证书固定与客户端证书无关。 didReceiveAuthenticationChallenge: 也被调用以响应接收服务器的证书。在这种情况下,它将 protectionSpace.authenticationMethod 设置为 NSURLAuthenticationMethodServerTrust。如果服务器请求客户端证书,它将用 ...ClientCertificate 再次调用。如果需要 Basic Auth,它将用 ...HTTPBasic 等再次调用。