有没有办法以编程方式将证书安装到mozilla中?我们正在尝试编写所有脚本以消除环境中的偏差,因此通过mozilla首选项手动安装它并不适合我们的需求.我认为有一种方法可以使用certutil,但我不确定Mozilla的内部等.
这是一种不覆盖现有证书的替代方法:[Linux系统的bash片段]
certificateFile="MyCa.cert.pem" certificateName="MyCA Name" for certDB in $(find ~/.mozilla* ~/.thunderbird -name "cert8.db") do certDir=$(dirname ${certDB}); #log "mozilla certificate" "install '${certificateName}' in ${certDir}" certutil -A -n "${certificateName}" -t "TCu,Cuw,Tuw" -i ${certificateFile} -d ${certDir} done
您可以在libnss3-tools包(debian/ubuntu)中找到certutil.
资料来源:http://web.archive.org/web/20150622023251/http : //www.computer42.org : 80/xwiki- static/ exported/ DevNotes/
xwiki.DevNotes.Firefox.html
另见:https:
//developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/tools/NSS_Tools_certutil
最简单的方法是将证书导入示例firefox-profile,然后将cert8.db复制到要配备证书的用户.
首先手动将证书导入sample-user的firefox配置文件.然后复制
/home/${USER}/.mozilla/firefox/${randomalphanum}.default/cert8.db
(的Linux/Unix)
%userprofile%\Application Data\Mozilla\Firefox\Profiles\%randomalphanum%.default\cert8.db
(视窗)
进入用户firefox-profiles.而已.如果要确保新用户自动获得证书,请复制cert8.db
到:
/etc/firefox-3.0/profile
(的Linux/Unix)
%programfiles%\firefox-installation-folder\defaults\profile
(视窗)
只是想添加一个旧线程,希望能帮助其他人.我需要使用GPO以编程方式将证书添加到firefox数据库,这就是我为Windows做的
1,首先下载并解压缩预编译的firefox NSS nss-3.13.5-nspr-4.9.1-compiled-x86.zip
2,手动将证书添加到firefox选项 - >高级 - 证书 - >授权 - >导入
3,从下载的NSS包中运行
certutil -L -d c:\users\[username]\appdata\roaming\mozilla\firefox\[profile].default
4,上面的查询将显示证书名称和信任属性,例如
my company Ltd CT,C,C
5,删除步骤2中的证书.选项 - >高级 - 证书 - >授权 - >删除
6,使用步骤4中的信息创建powershell脚本,如下所示.此脚本将获取用户配置文件路径并添加证书.这只适用于用户有一个firefox配置文件(需要以某种方式检索用户firefox文件夹配置文件名称)
#Script adds Radius Certificate to independent Firefox certificate store since the browser does not use the Windows built in certificate store #Get Firefox profile cert8.db file from users windows profile path $ProfilePath = "C:\Users\" + $env:username + "\AppData\Roaming\Mozilla\Firefox\Profiles\" $ProfilePath = $ProfilePath + (Get-ChildItem $ProfilePath | ForEach-Object { $_.Name }).ToString() #Update firefox cert8.db file with Radius Certificate certutil -A -n "UK my company" -t "CT,C,C" -i CertNameToAdd.crt -d $ProfilePath
7,将GPO创建为用户配置以运行PowerShell脚本
希望有助于节省时间
Firefox现在(自58开始)使用SQLite数据库cert9.db而不是旧版cert8.db。我已经修复了此处介绍的解决方案,以使其能够与新版本的Firefox一起使用:
certificateFile="MyCa.cert.pem" certificateName="MyCA Name" for certDB in $(find ~/.mozilla* ~/.thunderbird -name "cert9.db") do certDir=$(dirname ${certDB}); #log "mozilla certificate" "install '${certificateName}' in ${certDir}" certutil -A -n "${certificateName}" -t "TCu,Cuw,Tuw" -i ${certificateFile} -d sql:${certDir} done
在带有Firefox 10的Windows 7上,cert8.db文件存储在%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\########.default\cert8.db
.如果您是管理员,则可以编写一个简单的WMI应用程序将文件复制到用户的相应文件夹中.
此外,从http://www.appdeploy.com/messageboards/tm.asp?m=52532&mpage=1&key=촴我可以使用的解决方案
CERTUTIL.EXE
从NSS zip文件(http://www.mozilla.org/projects/security/pki/nss/tools/)复制到C:\Temp\CertImport
(我还放置了我要导入的证书)
将所有dll从NSS zip文件复制到 C\:Windows\System32
%Appdata%\mozilla\firefox\profiles
使用此脚本创建了BAT文件...
Set FFProfdir=%Appdata%\mozilla\firefox\profiles Set CERTDIR=C:\Temp\CertImport DIR /A:D /B > "%Temp%\FFProfile.txt" FOR /F "tokens=*" %%i in (%Temp%\FFProfile.txt) do ( CD /d "%FFProfDir%\%%i" COPY cert8.db cert8.db.orig /y For %%x in ("%CertDir%\Cert1.crt") do "%Certdir%\certutil.exe" -A -n "Cert1" -i "%%x" -t "TCu,TCu,TCu" -d . For %%x in ("%CertDir%\Cert2.crt") do "%Certdir%\certutil.exe" -A -n "Cert2" -i "%%x" -t "TCu,TCu,TCu" -d . ) DEL /f /q "%Temp%\FFProfile.txt"
执行BAT文件并取得了良好的效果.