目标是只信任硬盘上存储的特定配置文件的某些证书。因此不需要证书颁发机构。
尝试过但没有成功:
- 使用证书管理器删除所有 CA(Firefox 偏好设置的一部分)
cert9.db
在个人资料中删除- 清除
cert9.db
为 0 字节并删除所有权限标志,以便 Firefox 无法更改它
所有这三种措施都导致 CA 重新出现(尽管不一定在cert9.db
,至少如果我删除了该文件的写权限;但仍然在 Firefox 的证书管理器中)。
我想知道 CA 是从哪里来的。如果 Firefox 遗漏了它们,它会从互联网上读取它们吗?我根本没想到它们会重新出现。
我怎样才能阻止这种行为?
答案1
有没有办法删除 Firefox 中的所有 CA 证书?
Firefox 使用 Mozilla 的国家安全战略用于安全相关功能(如 TLS)的库。NSS 有自己的内置 CA 存储,Firefox 可以使用它来获取默认 CA 证书。
预加载的 CA 证书包含在以下文件中:
- Windows:libnssckbi.dll
- Unix、Linux 和其他 *nix 变体:libnssckbi.so
- Mac OS X:Contents/MacOS/libnssckbi.dynlib
因此,无法删除所有 CA 证书,因为它们是 Firefox 本身的一部分。
是否可以剥夺所有 CA 证书的所有信任?
如果您不信任 Mozilla 产品中默认包含其根证书的特定 CA,则有两种方法可以禁用该证书。
- 关闭该根证书的信任位。
- 删除根证书。
- 删除默认根存储中的根证书相当于关闭该根的所有信任位。因此,即使根证书会重新出现在证书管理器中,也会被视为您更改了该根证书的信任位以将其全部关闭。
重要的:此更改将产生永久性影响,因此只有您才能再次更改根证书的信任位。升级到较新版本的 Mozilla 软件不会影响此更改。强烈建议您记下修改了哪个根证书,这样如果更改对您的浏览体验产生负面影响,您可以重新启用信任位。
因此,要不信任所有 CA 证书:
- 去
about:preferences#privacy
- 点击
View Certificates...
页面底部的 - 切换到标签
Authorities
- 选择证书
- 点击
Delete or Distrust...
- 点击确认
OK
- 对每个证书重复步骤 4-6
- 重启 Firefox
重新启动 Firefox 后,您将看到所有默认证书都已重新出现。
为什么重新启动 Firefox 后 CA 证书会不断重新出现?
默认证书无法删除,因此 Firefox 只会不信任它们,因此它们无法用于验证其他证书。您可以选择一个 CA 证书,然后单击Edit Trust...
以查看一旦您不信任它,就不会检查任何内容。
不信任与删除证书本身具有相同的效果,只是证书仍会显示在证书管理器中。
了解更多信息:更改信任设置
答案2
看起来 Firefox 已经在代码中内置了一些 CA。
从CA/常见问题:
这些预加载的根 CA 证书以共享库的形式随 Mozilla 及相关软件一起分发,并与软件的其余可执行代码一起安装在用户的系统上。因此,当软件的新版本发布时,它们可以进行更新。
预加载的 CA 证书包含在以下文件中:
- Windows:libnssckbi.dll
- Unix、Linux 和其他 *nix 变体:libnssckbi.so
- Mac OS X:Contents/MacOS/libnssckbi.dynlib
如果您要删除的证书就是这些,那么答案是否定的,因为它们内置于代码中,并且不存储在任何.db
文件中(首先)。您可以尝试破解这些文件,但即使成功,您也需要对每个新版本的 Firefox 重复破解。
我发现了另一个设置,该设置可能导致存储中填充来自操作系统的证书,尽管可能仅适用于 Windows security.enterprise_roots.enabled
:。
目前没有关于此about:config
设置如何实现的信息,尽管从文章中可以清楚地看出它仍在发展。我建议测试一下你的情况是否设置了它。
摘自 Mozilla 文章 CA:添加根目录到Firefox:
从版本 49 开始,Firefox 可以进行实验性配置,以自动搜索和导入用户或管理员已添加到 Windows 证书存储区的 CA。为此,请设置首选项“安全.企业根目录.已启用“ 到真的。在此模式下,Firefox 将检查
HKLM\SOFTWARE\Microsoft\SystemCertificates
注册表位置(对应于 API 标志CERT_SYSTEM_STORE_LOCAL_MACHINE
),以查找值得信赖的 CA,这些 CA 可以颁发用于 TLS Web 服务器身份验证的证书。任何此类 CA 都将被 Firefox 导入和信任,但请注意,它们可能不会出现在 Firefox 的证书管理器中。预计这些 CA 的管理(例如信任配置)将通过内置的 Windows 工具或其他第三方实用程序进行。另请注意,要使此类更改在 Firefox 中生效,必须关闭首选项并再次打开,或者必须重新启动 Firefox。随着此功能的发展,这可能会自动处理以方便使用。