【问题标题】:How to install one certificate automated into Firefox store?如何将一个证书自动安装到 Firefox 商店?
【发布时间】:2015-10-01 20:29:07
【问题描述】:

我有一个应用程序 (.NET),它通过以下方式自动将证书添加到 Windows 根存储:

X509Store rootStore = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
rootStore.Open(OpenFlags.ReadWrite);
rootStore.Add(certificate);
rootStore.Close();

Internet Explorer 然后知道这个证书。但 Firefox 没有,因为它有自己的证书存储区。

有什么方法可以在不覆盖当前 Firefox 证书的情况下完成此操作(在某处读取以复制 cert8.db,但由于多个客户的原因,这是不可能的)?

我只是想自动将一个证书“添加”到 Firefox 商店。

提前谢谢你。

【问题讨论】:

    标签: firefox certificate


    【解决方案1】:

    您可以使用NSS 管理本地安装的证书。不确定它在 .NET 上的表现如何(如果有的话),但如果环境是可预测的,您可能会求助于运行可执行文件。

    【讨论】:

    • 感谢您的回复。我可以在我的 .NET 代码中调用一些 *.exe,所以它可能没问题。几个问题:a)它是否为所有配置文件安装证书? b) 安装时是否需要关闭 Firefox?
    • 不知道,自己没用过。配置文件都有自己的证书数据库,所以我想你需要分别做每一个。
    【解决方案2】:

    第一次尝试几乎可以满足我的要求:

    文档在这里:https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/tools/NSS_Tools_certutil

    我从以下位置下载了二进制文件: https://www.felixrr.pro/wp-content/uploads/2012/06/nss-3.13.5-nspr-4.9.1-compiled-x86.zip

    然后从提取的 zip 目录中运行以下命令(否则 CMD 将使用 Windows 的 certutil),它可以工作:

    // Add certificate to cert8.db (Db will be reloaded on next FF start)
    certutil.exe -A -n "SomeName" -t "Cu,p,p" -i "C:\Test\cert.pem" -d "%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\5drs48sb.default"
    
    // Show all certificates in cert8.db
    certutil.exe -L -d "%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\5drs48sb.default"
    

    重新启动 FF 后,我可以成功导航到我的 SSL 页面,而不会出现证书错误。

    唯一不起作用的命令是删除命令,它返回错误'certutil.exe:找不到名为“SomeName”的证书:安全库:数据库错误。':

    certutil.exe -D -n "SomeName" -d "%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\5drs48sb.default"
    

    【讨论】:

      猜你喜欢
      • 2019-12-02
      • 1970-01-01
      • 2011-07-12
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 2022-12-15
      • 2019-04-08
      相关资源
      最近更新 更多