Проверьте, есть ли сертификат с конкретным серийным номером. существует в Firefox cert db

Как я могу проверить, существует ли сертификат с определенным серийным номером в базе данных сертификатов профиля пользователя Firefox?

До сих пор я использовал приведенную ниже команду, чтобы проверить ее, а затем проанализировать вывод:

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

Это отлично работает при работе только с 1 сертификатом, но теперь мне нужно проверить несколько сертификатов, 2 из которых, к сожалению, имеют один и тот же «Псевдоним сертификата».

Могу ли я как-то либо получить серийный номер всех установленных сертификатов, либо запросить, установлен ли сертификат с указанным серийным номером?

Я использую certutil.exe, созданный из nss-3.16.1-with-nspr-4.10.5.

Заранее спасибо.


person Michael G    schedule 02.02.2015    source источник


Ответы (1)


Я не думаю, что certutil позволяет вам это сделать, однако сделать что-то подобное в самом nss достаточно просто.

Вот пример Python с использованием python-nss, который просто выгружает все серийные номера и псевдонимы из базы данных.

#!/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)
person nmaier    schedule 02.02.2015
comment
Это что-то, что можно использовать или портировать в среду Windows? - person Michael G; 05.02.2015