2015-09-28 34 views
1

我有一个应用程序(.NET),其通过自动添加一个证书到Windows的根存储:如何将一个证书自动安装到Firefox商店?

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

Internet Explorer然后知道此证书。但是Firefox并没有它自己的证书存储。

有没有办法做到这一点,而不覆盖当前的Firefox证书(读的地方复制cert8.db但那是不可能的,因为多个客户)?

我只是想自动一个证“添加”到火狐商店。

预先感谢您。

回答

0

第一次尝试这已经工作了近,因为我想:

的文档是在这里: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

然后根据所提取的拉链中运行以下命令-directory(否则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页面,而不会出现证书错误。

没有工作但唯一的命令是delete命令返回错误“的certutil.exe:无法找到名为‘SomeName’证书:安全库:坏数据库”:

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

您可以使用NSS到本地安装管理证书。不知道它与.NET有多好(如果有的话),但如果环境是可预测的,你可能会诉诸运行一个可执行文件。

+0

谢谢您回复。我可以在我的.NET代码中调用一些* .exe,所以它可能没问题。几个问题:a)是否安装所有配置文件的证书? b)Firefox安装时是否关闭? – Powerslave

+0

不知道,从来没有用过它。配置文件都有自己的证书数据库,所以我想你需要分别做每一个。 – miken32

+0

好的,谢谢。会放弃它。 – Powerslave

相关问题