【问题标题】:Win RT (Windows 8.1) WebView : Ignore Certfificate ErrorWinrt (Windows 8.1) WebView:忽略证书错误
【发布时间】:2014-12-09 01:32:39
【问题描述】:

我在 Win RT (Windows 8.1 Store App) 的 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

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

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

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

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

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

提前谢谢..

问候山姆

【问题讨论】:

  • 使用HttpClient,您可以使用以下答案中的代码找出证书错误:stackoverflow.com/questions/25919321/…
  • 是的,我收到“InvalidName”和“UnTrusted”证书错误。我也尝试将它们包含在 IgnorableServerCertificateErrors list 中,但同样的错误不断出现..
  • 可以分享网址吗?

标签: windows winrt-xaml windows-8.1


【解决方案1】:

你可以这样做:

  1. 将网站证书导出到文件 (localhost.cer)
  2. 编辑 appxmanifest 并添加此扩展(在功能之后):
证书> 扩展> 扩展>
  1. 将您的证书 (localhost.cer) 复制到您的 Assets 文件夹并将其构建操作更改为 Content

立即尝试...

希望这会有所帮助,

【讨论】:

  • 此解决方案在我的应用中完美运行!谢谢你,土拨鼠;-)
【解决方案2】:

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

【讨论】:

  • 谢谢马特,无论如何我可以在安装文件夹中以编程方式包含证书。如果是,那么它会解决实际问题吗?
  • 我已经尝试过您提到的博客文章。它对我没有用。 HttpClient 继续抛出“InValidName”和“UnTrusted”证书错误,即使将它们包含在 IgnorableServerCertificateErrors 列表中。
猜你喜欢
  • 2019-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 2017-07-31
  • 2018-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多