我在Win RT(Windows 8.1应用商店)的WebView中遇到问题。
当我试图导航到某个页面(在WebView中)时,如果该页面包含安全证书错误,则WebView只是显示一个空白(白色)页面。
基于以下帖子,https://social.msdn.microsoft.com/Forums/windowsapps/en-US/c5159b37-73cb-4081-a59e-4b1d867e4f77/webview-load-webpage-for-uri-with-none-validate-ssl-certificate?forum=winappswithcsharp
我假设,web视图不是为了显示有证书问题的页面而构建的。
我还尝试通过Windows.Web.Http.HttpClient和HttpBaseProtocolFilter获取页面内容,并在IgnorableServerCertificateErrors列表中包含ChainValidationResult枚举的所有可能值。
然而,这也不能解决这个问题。它继续抛出异常(InvalidName,Untrusted)。
我也看过下面的帖子,但并没有一个真正解决我现在面临的问题。使用HttpClient 允许不受信任的SSL证书
如果你们能提供可能的解决方案/变通方法来克服这一限制,我将不胜感激。
提前谢谢。。
问候Sam
您可以这样做:
- 将站点cerfificate导出到文件(localhost.cer)
- 编辑appxmanifest并添加此扩展(在功能之后):
<扩展><--证书扩展-->;<扩展类别="windows.certificates"><证书><Certificate StoreName="Root"Content="Assets\localhost.cer"/><证书><扩展><扩展>
- 将证书(localhost.cer)复制到Assets文件夹,并将其构建操作更改为Content
现在就试试。。。
希望这能有所帮助,
您的应用程序会经常访问那个特定的网站/页面吗?如果是,请从该网站下载SSL证书,并将其与应用程序一起发送,以便它信任该网站。
您还可以使用此技术来绕过SSL错误:http://blogs.msdn.com/b/wsdevsol/archive/2013/10/17/how-to-ignore-self-signed-certificate-errors-in-windows-store-apps-8-1.aspx