在 Firefox 上添加系统范围的证书颁发机构

Jor*_*Lis 34 firefox certificates

我想在 Ubuntu 上添加一些默认 firefox 没有的根 CA,但我不知道如何。

我尝试将它们添加到本地证书中certutil,但是没有用。它弄乱了我的证书数据库。

$ certutil -A -d .mozilla/firefox/kek3dogy.default/ -i /usr/local/share/ca-certificates/FNMT_ACRAIZ.crt -n "Certificado Raiz FNMT" -t "TCu,Cuw,Tuw"
Run Code Online (Sandbox Code Playgroud)

进而

$ certutil -L -d .mozilla/firefox/kek3dogy.default/

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

Go Daddy Secure Certification Authority                      ,,   
VeriSign Class 3 Secure Server CA - G3                       ,,   
VeriSign Class 3 Extended Validation SSL CA                  ,,   
DigiCert High Assurance CA-3                                 ,,   
GlobalSign Domain Validation CA - G2                         ,,   
GeoTrust SSL CA                                              ,,   
StartCom Class 2 Primary Intermediate Server CA              ,,   
Google Internet Authority                                    ,,   
Certificado Raiz FNMT                                        CT,C,c
USERTrust Legacy Secure Server CA                            ,,   
HP Jetdirect 2B0EAD20                                        ,,   
Akamai Subordinate CA 3                                      ,,   
VeriSign, Inc.                                               ,,   
Thawte SGC CA                                                ,,   
VeriSign Class 3 Secure Server CA - G2                       ,,
Run Code Online (Sandbox Code Playgroud)

该证书不会显示在 Firefox 上。我试了几次,甚至删除了配置文件,它在 Firefox 界面上出现过一次,但完全是空的。

无论如何,这仅适用于用户,我想在系统范围内添加它们。是否有我可以修改的系统范围的数据库?如何?

如果没有我可以修改的系统范围的数据库,我可以依靠 X 启动脚本(作为/etc/X11/Xsession.d/一个,或由 xdg 自动启动系统调用的脚本/etc/xdg/autostart/)在会话启动时修改用户配置文件,但我需要一个解决方案作品。我现在甚至无法从命令行加载用户配置文件上的证书!

And*_*ini 24

这里的问题是 Firefox 没有查找证书的“中央”位置。它只是查看当前的配置文件。这就是修改/usr/share/ca-certificates或其他类似目录不适用于 Firefox 的原因。这是多年来一直要求的事情;请参阅问题620373449498454036(可能还有许多其他问题)。

因此,您只剩下两种解决方案:修改每个配置文件,或修改 Firefox 的行为。我知道这不是您要找的,但没有办法,因为 Firefox 只查看用户的个人资料。

话虽如此,我会选择的解决方案是使用硬链接或符号链接,特别是我会使用硬链接。这个解决方案肯定是最简单的,可能更好,尽管我没有足够的信息来判断。

您需要做的基本上是删除每个配置文件的每个cert8.dbkey3.db文件,并用指向“最完整”cert8.dbkey3.db. 如果您使用硬链接,则原始链接cert8.db和新链接key3.db将无法区分。

请记住调整权限以满足您的需要。最有可能的是,您需要这样做,chmod a+rw以便每个人都能够添加/删除证书。如果您只希望某些用户能够添加/删除证书,您可以创建一个组,将两个数据库分配给该组并+w仅授予该组权限。


Tom*_*Kat 16

最简单的方法是将证书导入示例 firefox-profile 中,然后将 cert8.db 复制到您想要配备该证书的用户。

首先手动将证书导入sample-user 的firefox 配置文件中。然后复制

/home/${USER}/.mozilla/firefox/${randomalphanum}.default/cert8.db
Run Code Online (Sandbox Code Playgroud)

进入用户firefox-profiles。就是这样。如果您想确保新用户自动获得证书,请复制cert8.db到:

/etc/firefox-3.0/profile
Run Code Online (Sandbox Code Playgroud)

这是一种不覆盖现有证书的替代方法:[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
Run Code Online (Sandbox Code Playgroud)

您可以在 libnss3-tools 包 (debian/ubuntu) 中找到 certutil。

另请参阅:CA 证书的编程导入

来源:以编程方式将证书安装到 Mozilla


小智 14

找到了在 ubuntu 上向 firefox 添加证书的解决方案:

https://github.com/mozilla/policy-templates/#proxy

只需将此文件添加到:

/usr/lib/firefox/distribution/

touch policies.json
Run Code Online (Sandbox Code Playgroud)

在policies.json中添加:

{
"policies": {
"Certificates": {
    "ImportEnterpriseRoots": true,
    "Install": [
               "somecert1.crt",
               "usr/local/share/ca-certificates/somecert1.crt"
               ]
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

安装部分首先是证书的名称,然后是路径。并重新启动火狐浏览器。如果某些东西不起作用,请尝试重置 Firefox,就好像您在它卡住之前已经设置了某些东西一样。

此方法无需 certutil 即可正常工作。


whe*_*ler 9

与流行的看法相反,您可以让 Firefox 查看系统证书而不是它自己的硬编码集。

为此,您需要使用一个名为p11-kit 的包。p11-kit 为libnssckbi.so包含硬编码证书集的共享库提供了替代品。p11-kit 版本会从系统证书存储中读取证书。

由于 Firefox 附带了自己的 版本libnssckbi.so,因此您需要跟踪并替换它,而不是 libnss3 中提供的版本:

sudo mv /usr/lib/firefox/libnssckbi.so /usr/lib/firefox/libnssckbi.so.bak
sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/firefox/libnssckbi.so
Run Code Online (Sandbox Code Playgroud)

接下来,删除该~/.pki目录以使 Firefox 在重新启动 Firefox 时刷新其证书数据库(使其拉入系统证书)。注意:这将删除存储中的所有现有证书,因此如果您手动添加了自定义证书,您可能需要备份该文件夹,然后重新导入它们。

  • 哦,哇,这有点麻烦,但是+1。您可能需要添加“dpkg-divert”步骤,以避免在升级 Firefox 软件包时 APT 再次覆盖该文件。 (2认同)