当前位置:  开发笔记 > 编程语言 > 正文

以编程方式将证书安装到Mozilla中

如何解决《以编程方式将证书安装到Mozilla中》经验,为你挑选了5个好方法。

有没有办法以编程方式将证书安装到mozilla中?我们正在尝试编写所有脚本以消除环境中的偏差,因此通过mozilla首选项手动安装它并不适合我们的需求.我认为有一种方法可以使用certutil,但我不确定Mozilla的内部等.



1> H.-Dirk Schm..:

这是一种不覆盖现有证书的替代方法:[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



2> 小智..:

最简单的方法是将证书导入示例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 (视窗)


没有更简单的方法.Firefox在干净安装后工作.如果删除`cert8.db`中的证书数据库,则会在下次Firefox启动时重新生成.这强烈表明存在CA证书的系统范围默认存储.Firefox的源代码[显示](https://github.com/mozilla/gecko-dev/blob/master/security/nss/lib/ckfw/builtins/Makefile#L52)内置CA证书实际上很难编码成`firefox`可执行文件.它们位于[security/nss/lib/ckfw/builtins/certdata.txt]中(https://github.com/mozilla/gecko-dev/blob/master/security/nss/lib/ckfw/builtins/certdata.txt )
答对了.现在我知道了cert DB的位置,我可以从那里使用certutil.谢谢.
对于mac,它位于:/ Users/$ {USER}/Library/Application Support/Firefox/Profiles/hpc6g9rx.default/cert8.db

3> 小智..:

只是想添加一个旧线程,希望能帮助其他人.我需要使用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脚本

希望有助于节省时间



4> 小智..:

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



5> kitwalker..:

在带有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文件并取得了良好的效果.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有