检查具有特定序列号的证书是否。存在于Firefox cert db中

时间:2015-02-02 12:12:08

标签: firefox certificate nss certutil

如何检查Firefox用户配置文件的cert db中是否已存在具有特定序列号的证书?

到目前为止,我一直在使用下面的命令检查它,然后解析输出:

certutil.exe -L -d C:\Users\<username>\AppData\Roaming\Mozilla\Firefox\Profiles\<profile>

只使用1个证书时这工作正常,但我现在需要检查多个证书,其中2个不幸共享相同的“证书昵称”。

我是否能以某种方式获取所有已安装证书的序列号或查询是否安装了具有指定序列号的证书?

我正在使用从nss-3.16.1-with-nspr-4.10.5构建的certutil.exe

提前致谢。

1 个答案:

答案 0 :(得分:0)

我不认为certutil允许你这样做,但是,在nss本身做这样的事情很容易。

这是一个使用python-nss的Python示例,它只是从数据库中转储所有序列号和昵称。

#!/usr/bin/env python2
from __future__ import print_function
import sys
from nss import nss

nss.nss_init(sys.argv[1])
for cert in nss.list_certs(nss.PK11CertListAll):
    try:
        print("{} {}".format(cert.serial_number, cert.make_ca_nickname()))
    except Exception as ex:
        print(ex, file=sys.stderr)