Я ищу основной список CRL. Самое близкое, что я нашел, это Chromium projectCRLSets. Я использовалcrlset-инструментычтобы получить crlset ( crlset fetch > crl-set
), а затем выгрузить серийные номера ( crlset dump crl-set
), так что я вижу что-то вроде этого:
f24196ae94078667348f02e8e37458a3a6e6aad1e0b0dc610118cce721427bfc
03fb3b4d35074e
03fbf94a0e6c39
04097214d6c97c
0442c6b3face55
....
Я хочу иметь возможность передавать в openssl или curl (который использует openssl) файл CRL, содержащий главный список всех плохих серийных номеров. Например, вместо того, чтобы просто передавать crl verisign, я хочу передать все. Я думал, что смогу сделать это с помощью crlset, но не думаю, что формат совместим. Я попробовал, openssl crl -inform DER -text -in crl-set
но он говорит:
unable to load CRL
5532:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:
1319:
5532:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:ta
sn_dec.c:381:Type=X509_CRL
Если у кого-то есть идеи, как сделать то, о чем я говорю, или какой-то креативный способ сделать это, пожалуйста, дайте мне знать. Спасибо
решение1
Это может оказаться невозможным, по крайней мере, в той форме, в которой вам хотелось бы.
Учтите, что в CRLsets Chrome есть (возможно) несколько отозванных сертификатов отнесколькоCAs. Один файл CRL, содержащий сертификат отнесколькоCAs известен как "косвенный CRL". Косвенные CRL плохо поддерживаются; см.здесьиздесь; OpenSSL может не иметь возможности сделать это.
Кроме того, как упоминает @bentek, похоже, что формат CRLsets несовместим. В частности, формат CRLsets не содержит всех необходимых полей CRL; см.RFC 5280, раздел 5.1. CRLsets содержит (согласно документации) хэш SHA-256 информации о публичном ключе субъекта для выдавших сертификатов и серийные номера сертификатов для отозванных сертификатов из этого выдавшего сертификата. Недостаточно информации для реконструкциипрямойCRL-список (то естьодин файл CRL на CA), к сожалению, если бы мы хотели. Самый большой недостаток/упущение, IMHO, этоимя(DN) эмитента отозванного сертификата. CRLsets дает нам «отпечаток пальца» (хэш SHA-256 SPKI), но сопоставить этот отпечаток с DN рассматриваемого сертификата, учитывая масштаб Интернета, будет непростой задачей.