我们的networkingpipe理员最近在防火墙/路由器上启用了HTTPS检查。 对于IE用户来说,这是没有问题的,因为证书已经通过活动目录分发给join域的计算机。 但是,我们有许多Firefox用户现在几乎在每个HTTPS站点上都出现证书错误。
Firefox使用自己的CA商店, 他们也为此感到自豪 。 有什么办法让Firefox默认信任系统证书存储? 我在Linux上看到很多关于如何做这个的post,但是对于Windows来说没有什么。
我怀疑这个post是不可能的,但那个post已经快4年了。
由于Firefox 49 支持Windows CA证书,并支持自Active Directory提供企业根证书的Firefox 52。
没有计划在默认情况下启用此function,因为没有关于当Firefox或Windowsapp store对安装的证书具有不同级别的信任时发生的情况的devise。
您可以通过创build此布尔值来在about:config启用此function:
security.enterprise_roots.enabled
并将其设置为true 。
部署系统configuration
在Firefox安装文件夹中,转到defaults\pref\文件夹并使用以下命令创build一个新文件:
/* Allows Firefox reading Windows certificates */ pref("security.enterprise_roots.enabled", true);
将其保存为.js扩展名,例如trustwincerts.js并重新启动Firefox。 该条目将显示在所有用户的about:config中。
系统范围部署Windows证书
在从49到51的Firefox中,它只支持“Root”存储。 自Firefox 52以来,它支持其他商店,包括通过AD从域添加的商店。
这有点超出范围,但解释了哪些是Firefox 49或51版本支持的唯一证书存储区,或者仅用于本地testing。 因为这部署本地机器用户,它需要在您的CMD / PowerShell窗口或自己的自动化部署脚本的pipe理员权限:
certutil -addstore Root path\to\cafile.pem
如果您更喜欢鼠标方式( 如何:使用MMCpipe理单元查看证书),则可以通过单击许多窗口从pipe理控制台完成此操作。
强制使用系统存储没有一个好办法,但有一个很好的解决方法(强制使用定制的Firefox兼容存储)。
下面的脚本位在login/注销时运行良好。
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 }
您是否考虑过将这些证书部署到Firefox以及Windows证书存储?
https://wiki.mozilla.org/CA:AddRootToFirefox详细介绍了几个选项:
certutil修改证书数据库。 使用Firefox的自动configurationfunction,通过在二进制文件旁边放置一个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", "");