Win RT(Windows 8.1)WebView:忽略证书错误

时间:2014-10-14 09:50:12

标签: windows winrt-xaml windows-8.1

我在Win RT的WebView(Windows 8.1 Store App)中遇到问题。

当我尝试导航到页面(在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

我假设,webview不是为了显示有证书问题的页面而构建的。

我还试图通过带有HttpBaseProtocolFilter的Windows.Web.Http.HttpClient获取页面内容,并在IgnorableServerCertificateErrors列表中包含ChainValidationResult Enumeration的所有可能值。

但是,这也无法解决问题。 它继续抛出异常(InvalidName,Untrusted)。

我也经历过以下帖子,但没有一个真正解决了我现在面临的问题。 Allowing Untrusted SSL Certificates with HttpClient

如果你们能提供可能的解决方案/解决方法来克服这个限制,我真的很感激。

提前致谢..

问候山姆

2 个答案:

答案 0 :(得分:1)

你可以这样做:

  1. 将站点cerfificate导出到文件(localhost.cer)
  2. 编辑appxmanifest并添加此扩展程序(在功能之后):
  3. 
        <Extensions>
            <!--Certificates Extension-->
            <Extension Category="windows.certificates">
                <Certificates>
                    <Certificate StoreName="Root" Content="Assets\localhost.cer" />
                </Certificates>
            </Extension>
        </Extensions>
    
    
    1. 将您的证书(localhost.cer)复制到您的Assets文件夹,并将其构建操作更改为Content
    2. 现在试试......

      希望这有帮助,

答案 1 :(得分:0)

该特定网站/网页是您的应用经常访问的内容吗?如果是这样,请从该网站下载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