如何使用无效/自签名证书在UWP WebView中强制导航到HTTPS网页?

时间:2015-10-14 13:48:42

标签: webview https windows-runtime uwp

让我们说我想为Windows 10 UWP开发自己的轻量级浏览器商店应用程序。将有用于Uri的TextBox,用于导航的Button和用于页面其余部分的WebView。 当我导航到具有有效证书和有效TLS设置的HTTPS网页时,它只是有效,但当我导航到包含无效/过期/自签名证书的页面时,https://expired.badssl.com/,我只有 OnNavigationFailed WebErrorStatus.CertificateIsInvalid 的事件。
我没有找到覆盖此错误并继续导航的机制,就像在标准浏览器中甚至在Microsoft Edge中一样,应该使用相同的UWP API构建。

有没有办法,如何覆盖HTTPS错误并导航到目标页面呢?我知道有安全考虑,我只是希望能够做到这一点。

由于

1 个答案:

答案 0 :(得分:2)

好的,我必须找到解决问题的方法 最简单的解决方案是,当使用自签名证书连接到特定网络时,可以在App Manifest 中将此证书列入白名单,并且页面只会加载。
在其他情况下,可以将 WebView.NavigateToLocalStreamUri 方法与自定义 IUriToStreamResolver 一起使用,该方法使用HttpClient和HttpBaseProtocolFilter忽略指定的证书验证错误。然后,此HttpClient用于无错误地下载所有请求的资源。

此处提供了包括代码示例在内的更多详细信息:
https://www.suchan.cz/2015/10/displaying-https-page-with-invalid-certificate-in-uwp-webview/