Firefox扩展:以编程方式将证书添加到信任证书存储区

时间:2014-11-01 15:52:37

标签: firefox ssl firefox-addon

我试图了解如何在FF中的可信证书存储中添加证书。到目前为止我找不到一个明确的答案,但做了一些研究我明白应该可以使用firefox扩展。这可能是一个提示:

https://developer.mozilla.org/en-US/Add-ons/Code_snippets/Miscellaneous#Adding_custom_certificates_to_a_XULRunner_application

有没有人知道如何使用现代版本的FF?有没有最好的做法?

提前感谢, 斯特凡诺

1 个答案:

答案 0 :(得分:3)

回答我自己的问题...经过一些额外的研究后,我设法做到了,我相信文章中的内容非常准确。你不需要构建一个XPCOM。

我刚刚使用以下代码创建了一个简单的添加:

function addCertificate() {
    var certDB = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB);
    var is = Cc["@mozilla.org/scriptableinputstream;1"].getService(Ci.nsIScriptableInputStream);
    var file = new FileUtils.File("/tmp/famfor.crt");
    var channel = gIOService.newChannelFromURI(gIOService.newFileURI(file));

    var input = channel.open();
    is.init(input);
    var envelope = is.read(input.available());
    is.close();
    input.close();

    var beginCert = "-----BEGIN CERTIFICATE-----";
    var endCert = "-----END CERTIFICATE-----";

    envelope = envelope.replace(/[\r\n]/g, "");
    var begin = envelope.indexOf(beginCert);
    var end = envelope.indexOf(endCert);
    var cert = envelope.substring(begin + beginCert.length, end);

    console.log(cert);

    certDB.addCertFromBase64(cert, "C,C,C", "");
};

我会说很简单:)