Answers:
从Firefox 49开始,自Firefox 52开始,对Windows CA证书和Active Directory提供的企业根证书提供了一些支持。从版本63开始,macOS还支持从钥匙串中读取证书。
从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证书
在从49到51的Firefox中,它仅支持“根”存储。从Firefox 52开始,它支持其他商店,包括通过AD从域中添加的商店。
这有点超出范围,但说明了哪个是Firefox支持的唯一证书存储,版本49到51或仅用于本地测试。因为这是为所有本地计算机用户部署的,所以它需要在CMD / PowerShell窗口或您自己的自动部署脚本中具有管理员特权。
certutil -addstore Root path\to\cafile.pem
如果您喜欢使用鼠标方式(如何:使用MMC管理单元查看证书),也可以从管理控制台中单击许多窗口来完成此操作。
certutil -addstore Root path\to\cafile.pem
或.crt)
您是否考虑过将这些证书部署到Firefox以及Windows证书存储中?
https://wiki.mozilla.org/CA:AddRootToFirefox详细介绍了一些选项:
certutil
。通过在二进制文件旁边放置一个javascript文件,使用Firefox的自动配置功能添加证书:
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兼容存储)。
以下脚本部分在登录/注销时效果很好。
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
}