【问题标题】:ASP.NET Core Self Signed Certificate in Firefox not workingFirefox 中的 ASP.NET Core 自签名证书不起作用
【发布时间】:2018-07-13 11:18:17
【问题描述】:

我在 ASP.NET Core 中使用自签名证书,默认开启,如 this article 中所述 我使用命令dotnet dev-certs https --trust 信任它

在 Chrome 和 Edge 中,我的 API 在调用时以绿色显示“连接安全”。但是,在 Mozilla Firefox (Quantum 61.0.1) 中,它给出“连接不安全”并出现以下错误:MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT

我该如何解决这个问题?如何配置 Firefox 以允许自签名证书?或者这是我必须在代码中做的事情?

【问题讨论】:

  • 对我来说听起来像是不同的浏览器实现,在这种情况下,我认为 Firefox 正在做正确的事情。为什么要自动信任自签名证书?
  • 那么为什么 Microsoft 文档说明这应该可以 OOTB?
  • 我没有看到文档对第三方浏览器行为做出任何保证。
  • Chrome 和 Edge(和 .NET)使用 Windows 证书存储来进行信任决策。 Firefox 没有。
  • 这不仅仅是关于 Windows 证书存储。在 MacOS 上也是如此

标签: c# firefox asp.net-core https ssl-certificate


【解决方案1】:

Firefox 不使用 Windows 证书存储,因此您需要手动将证书作为例外添加到 Firefox。

从 Visual Studio 启动开发服务器;在 Firefox 中,转到右上角的汉堡图标 -> 选项 -> 隐私和安全 -> 证书:查看证书... -> 添加例外...并输入本地开发服务器的 url,例如“https://localhost:4000”。点击“获取证书”,勾选“永久存储此异常”和“确认安全异常”。

【讨论】:

【解决方案2】:

【讨论】:

  • 这确实是新的解决方案,我发布问题时没有记录。
  • @Appsum Solutions 你能把它改成接受的答案吗?我会维护那个文档。 SO 可能会过时。
  • Fwiw,这两种方法都对我有用。我仍然得到 SEC_ERROR_INADEQUATE_KEY_USAGE 的政策和 about:config 更改
【解决方案3】:

dotnet dev-certs https --trust 命令将localhost 的 CA 根证书存储在 Windows 证书存储区或 MacOS 系统钥匙串中。默认情况下,Firefox 不使用这些来验证证书。

Firefox 提供了信任存储在系统钥匙串中的证书的可能性。其中一种方法是在about:config 中启用设置security.enterprise_roots.enabled

更多信息:https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox

【讨论】:

  • 谢谢!这也适用于带有 .NET 3.1 的 EF Core 5
猜你喜欢
  • 2016-11-13
  • 2016-11-29
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-25
  • 1970-01-01
相关资源
最近更新 更多