私はマスターCRLリストを探しています。私が見つけた最も近いものはChromiumプロジェクトのCRLセット. 私はcrlset ツールcrlset ( crlset fetch > crl-set
) を取得し、シリアル番号 ( crlset dump crl-set
) をダンプすると、次のようになります。
f24196ae94078667348f02e8e37458a3a6e6aad1e0b0dc610118cce721427bfc
03fb3b4d35074e
03fbf94a0e6c39
04097214d6c97c
0442c6b3face55
....
すべての不正なシリアルのマスター リストを含む CRL ファイルを openssl または curl (openssl を使用) に渡せるようにしたいと考えています。たとえば、verisign の crl を渡すだけでなく、すべてを渡したいのです。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
少なくともあなたが望む形では、これは不可能かもしれません。
ChromeのCRLセットには、(おそらく)複数の失効した証明書が含まれていることを考慮してください。複数CAからの証明書を含む単一のCRLファイル複数CAは「間接CRL」として知られています。間接CRLは十分にサポートされていません。ここそしてここ; OpenSSL ではこれができない可能性があります。
さらに、@bentekが述べているように、CRLsets形式は互換性がないようです。具体的には、CRLsets形式には必要なCRLフィールドがすべて含まれていません。RFC 5280、セクション5.1CRLsetsには(そのドキュメントによると)発行証明書のサブジェクト公開鍵情報のSHA-256ハッシュと、その発行証明書から取り消された証明書の証明書シリアル番号が含まれています。直接CRL (つまり残念ながら、CAごとに1つのCRLファイルを作成したい場合、名前(DN) 失効した証明書の発行者の CRLsets は「指紋」(SHA-256 SPKI ハッシュ) を提供しますが、インターネットの範囲を考えると、その指紋を問題の証明書の DN にマッピングするのは簡単な作業ではありません。