如何修复 Firefox 59 不再接受我在 .dev 虚拟主机上的自签名 SSL 证书

kon*_*tur 23 firefox ssl ssl-certificate

在我的本地 Apache 环境中,我有一个需要 SSL 进行开发的站点,因此我一直在使用自签名证书。到目前为止,本地站点在 Firefox 和 Chrome 中运行良好,但在今天将 Firefox 更新到版本 59 后,我无法让它接受安全异常(在 Chrome 上,自签名证书继续工作)。

Firefox 在被阻止的页面中为我提供了以下附加信息:

... 使用无效的安全证书。该证书不受信任,因为它是自签名的。错误代码:SEC_ERROR_UNKNOWN_ISSUER

没有像以前那样允许例外的选项,但是我转到了证书下的 Firefox 首选项,然后在“服务器”选项卡中,我为本地域添加了一个例外。然后证书会列在正确的本地服务器名称中,详细信息显示我的颁发者和颁发者证书设置相同,具有有效的时间跨度。

有没有人在 FF 59 上遇到过类似的问题,或者可能知道如何尝试让自签名证书在本地再次工作?


编辑:我在FF 59 发行说明中没有看到任何提及,但新版本中的某些内容导致 *.dev 域上的所有本地虚拟主机自动尝试建立 https 连接(也就是说,所有 http *.dev 的请求会自动发送到 https URL)。也许这种行为也是导致我的实际 https 虚拟主机出现这些问题的原因。

And*_*cer 17

有一个简单的方法可以解决这个问题。

  1. about:config
  2. 搜索“network.stricttransportsecurity.preloadlist”。
  3. 将其设置为false

警告:这将完全禁用 HSTS。请查看对此答案的评论,以了解有关此方法缺点的一些讨论。我个人认为收益大于风险,但您要为自己的安全负责。

在此处输入图片说明

2020 年编辑:我们现在已经拥有 .dev TLD 多年了。是时候停止使用 .dev 作为本地 URL 了。此解决方法仍然有效,但您正在剥夺自己的安全性。

  • 这是一个非常糟糕的主意,因为此设置将适用于您访问的所有网站,而不仅仅是您自己的网站。您正在降低安全性。 (4认同)

kon*_*tur 16

我仍然不完全清楚这一切是如何完全结合在一起的,但正如这个答案中 所指出的,.dev域现在是官方 TLD。因此,浏览器似乎强制某种 HSTS 行为并强制 https 连接。对于那些 TLD,Firefox 似乎不再接受我的自签名证书。更改我的虚拟主机以使用.test解决了这个问题,而无需更改我的自签名证书中的任何内容。

值得注意的是,在 Firefox 中,我的非 SSL 虚拟主机也从今天的版本 59 开始运行,因为 HSTS 行为似乎在我没有设置为通过 SSL 提供服务的虚拟主机上强制使用 SSL。在 Chrome 上,这仍然有效,但无论哪种方式,都可以肯定地说,远离现在正式使用的.devTLD 将解决许多令人头疼的问题。

  • 见 https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/ (2认同)

Sea*_*ken 10

在页面上设置security.enterprise_roots.enabled为为我解决了这个问题,并允许我的自签名证书在开发过程中工作。trueabout:config

这里有一些关于默认启用的优点的讨论:
Set security.enterprise_roots.enabled to true by default

尽管此标志的目的是允许 Firefox 使用机器范围的 CA 根存储作为证书颁发机构的有效来源,但这解决了我自己的用例的情况,我有一个我使用的自签名多域证书本地测试(subjectAltName's)。即使在我将证书添加到 Firefox 证书列表之后,直到我打开它才允许本地站点加载。