And*_*ing 5 certificate client-certificates ios wkwebview
我们有一个企业应用程序,其中包含WKWebView需要访问需要客户端证书的站点。
所需的客户端证书已安装在设备上,我们可以在 Safari 中访问受保护的站点。目前客户端证书是手动下载和信任的。
但是,当我们尝试WKWebView在我们的应用程序中访问同一站点时,该站点会返回 HTTP 400,因为它找不到客户端证书。
我已经尝试了以下适当navigationDelegate方法的实现:
print("authentication challenge: \(challenge)")
guard let trust = challenge.protectionSpace.serverTrust else {
print("no server trust: \(challenge.protectionSpace)")
completionHandler(URLSession.AuthChallengeDisposition.useCredential, nil)
return
}
print("using server trust: \(challenge.protectionSpace)")
let cred = URLCredential(trust: trust)
completionHandler(.useCredential, cred)
}
Run Code Online (Sandbox Code Playgroud)
当为客户端证书调用此方法时,没有challenge.protectionSpace.serverTrust.
如果我将客户端证书放入应用程序包中(通常不建议并且不是生产使用的可行选项),加载它并告诉 WKWebView 在completionHandler()回调中使用该凭据,然后站点加载。
我的理解是WKWebView应该可以访问与 Safari 相同的客户端证书,因此我无法解释为什么这不起作用。
有谁知道WKWebView使用系统范围的客户端证书的方法吗?
| 归档时间: |
|
| 查看次数: |
617 次 |
| 最近记录: |