答案1
自 Firefox 49 起对 Windows CA 证书的一些支持并自 Firefox 52 起支持 Active Directory 提供的企业根证书。自 macOS 63 版起也支持从 Keychain 读取。
自 Firefox 68 起,此功能在 ESR(企业)版本中默认启用,但在(标准)快速版本中未启用。
about:config
您可以通过创建以下布尔值为Windows 和 macOS 启用此功能:
security.enterprise_roots.enabled
并将其设置为true
。
对于 GNU/Linux,这通常由 p11-kit-trust 管理,不需要标志。
部署整个系统配置
自 Firefox 64 起,有一种新的推荐方法,即使用策略,记录在https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox
对于旧版本,可以从 Windows 注册表中检索 Firefox 安装文件夹,然后转到defaults\pref\
子目录并使用以下内容创建一个新文件:
/* Allows Firefox reading Windows certificates */
pref("security.enterprise_roots.enabled", true);
使用扩展名保存它.js
,例如trustwincerts.js
并重新启动 Firefox。该条目将显示在about:config
所有用户中。
在系统范围内部署 Windows 证书
在 Firefox 49 到 51 版本中,它仅支持“Root”存储。从 Firefox 52 开始,它支持其他存储,包括通过 AD 从域中添加的存储。
这有点超出范围,但解释了 Firefox 版本 49 至 51 中唯一支持的证书存储或仅用于本地测试的证书存储。由于这会为所有本地计算机用户部署,因此需要您在 CMD/PowerShell 窗口或您自己的自动部署脚本中拥有管理员权限。:
certutil -addstore Root path\to\cafile.pem
如果您喜欢使用鼠标方式,也可以通过单击多个窗口从管理控制台完成此操作(如何:使用 MMC 管理单元查看证书)。
答案2
您是否考虑过将这些证书部署到 Firefox 以及 Windows 证书存储区?
https://wiki.mozilla.org/CA:AddRootToFirefox详细说明几个选项:
- 直接使用 修改证书数据库
certutil
。 使用 Firefox 的自动配置功能,通过将 javascript 文件与二进制文件一起放置来添加证书:
var certdb = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB); var certdb2 = certdb; try { certdb2 = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB2); } catch (e) {} cert = "MIIHPT...zTMVD"; // This should be the certificate content with no line breaks at all. certdb2.addCertFromBase64(cert, "C,C,C", "");
- 直接分发证书数据库文件。
- 打包 Firefox 进行安装,包括发行版中的证书。
- 使用CCK2创建一个添加证书的扩展。
答案3
没有好的方法来强制使用系统存储,但有一个很好的解决方法(强制使用定制的 Firefox 兼容存储)。
下面的脚本在登录/注销时运行良好。
Stop-Process -processname firefox
$DBPath="\\yourserver\yourshare\cert8.db"
$FirefoxProfiles=Get-ChildItem $Env:appdata\Mozilla\Firefox\Profiles
$DB=Get-Item $DBPath
ForEach ( $Profile in $FirefoxProfiles )
{
$FullPath=join-path $Env:appdata\Mozilla\Firefox\Profiles $Profile
Copy-Item $DB $FullPath
$FullPath
}
答案4
有免费项目它提供了使用组策略管理 Firefox 根证书的功能。您可以从 Firefox 数据库中安装或删除根证书。