如何在 UWP WebView 中强制导航到具有 invalid/selfsigned 证书的 HTTPS 网页?
How to force-navigate in UWP WebView to HTTPS web page with invalid/selfsigned certificate?
假设我想为 Windows 10 UWP 开发自己的轻量级浏览器商店应用程序。将有用于 Uri 的 TextBox、用于导航的 Button 和用于页面其余部分的 WebView。
当我导航到具有有效证书和有效 TLS 设置的 HTTPS 网页时,它正常工作,但是当我导航到具有 invalid/expired/selfsigned 证书(如 [=11=)的页面时,我只得到 OnNavigationFailed 事件 WebErrorStatus.CertificateIsInvalid.
我没有找到覆盖此错误并继续导航的机制,就像在标准浏览器甚至 Microsoft Edge 中一样,应该使用相同的 UWP API.
构建
有没有办法,如何覆盖 HTTPS 错误并导航到目标页面?我知道有安全方面的考虑,我就是希望能够做到这一点。
谢谢
好的,我必须找到自己的解决方案。
最简单的解决方案是当使用自签名证书连接到特定网站时,可以在 App Manifest 中将此证书列入白名单,然后页面就会加载。
在其他情况下,可以将 WebView.NavigateToLocalStreamUri 方法与自定义 IUriToStreamResolver 结合使用,该方法将 HttpClient 与 HttpBaseProtocolFilter 结合使用,忽略指定的证书验证错误。然后使用此 HttpClient 无错误地下载所有请求的资源。
包括代码示例在内的更多详细信息可在此处获得:
https://www.suchan.cz/2015/10/displaying-https-page-with-invalid-certificate-in-uwp-webview/
假设我想为 Windows 10 UWP 开发自己的轻量级浏览器商店应用程序。将有用于 Uri 的 TextBox、用于导航的 Button 和用于页面其余部分的 WebView。
当我导航到具有有效证书和有效 TLS 设置的 HTTPS 网页时,它正常工作,但是当我导航到具有 invalid/expired/selfsigned 证书(如 [=11=)的页面时,我只得到 OnNavigationFailed 事件 WebErrorStatus.CertificateIsInvalid.
我没有找到覆盖此错误并继续导航的机制,就像在标准浏览器甚至 Microsoft Edge 中一样,应该使用相同的 UWP API.
有没有办法,如何覆盖 HTTPS 错误并导航到目标页面?我知道有安全方面的考虑,我就是希望能够做到这一点。
谢谢
好的,我必须找到自己的解决方案。
最简单的解决方案是当使用自签名证书连接到特定网站时,可以在 App Manifest 中将此证书列入白名单,然后页面就会加载。
在其他情况下,可以将 WebView.NavigateToLocalStreamUri 方法与自定义 IUriToStreamResolver 结合使用,该方法将 HttpClient 与 HttpBaseProtocolFilter 结合使用,忽略指定的证书验证错误。然后使用此 HttpClient 无错误地下载所有请求的资源。
包括代码示例在内的更多详细信息可在此处获得:
https://www.suchan.cz/2015/10/displaying-https-page-with-invalid-certificate-in-uwp-webview/