私は毎週最大5つのSSL CSRを処理し、CAに渡してアクションを実行する前にそれらの有効性をチェックする特権があります。UbuntuマシンでOpenSSLを使用してそれらが有効であることを確認し、正しいOU名、適切なCN、2048ビット以上のキーサイズなどをテストします。
先日、IIS7マシンから更新リクエストを受け取りました。OpenSSLを使用してこれを読み取る方法がまったくわかりません。私のCAがそれを受け入れたので、それは有効です...
'file(1)'は「RFC1421セキュリティ証明書署名要求テキスト」であると言います。これは、私がここに持っているCSRの〜50%について言っているものです(残りは「PEM証明書要求」です)。
$ head iis7rcsr
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIQsQYJKoZIhvcNAQcCoIIQojCCEJ4CAQExCzAJBgUrDgMCGgUAMIIJegYJKoZI
hvcNAQcBoIIJawSCCWcwggljMIIIzAIBADCB2zELMAkGA1UEBhMCTloxDTALBgNV
BBEMBDkwNTQxDjAMBgNVBAgMBU90YWdvMRAwDgYDVQQHDAdEdW5lZGluMRwwGgYD
...
...
openssl req
、CSR(PKCS#10)を読み取ると、CSRを理解できません...
$ openssl req -in iis7rcsr -text
unable to load X509 request
5156:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1316:
5156:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:380:Type=X509_REQ_INFO
5156:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:748:Field=req_info, Type=X509_REQ
5156:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:pem_oth.c:83:
MSDNブログのAndreas Kleinによるこの記事は、IIS7更新CSRがPKCS#7コンテナーであり、CSRと現在の証明書に基づく署名が付いていることを示していますが、それでもまだ読み取ることができません。
$ openssl pkcs7 -in iis7rcsr -text
unable to load PKCS7 object
6581:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:Expecting: PKCS7
'openssl base64'を使用してファイルをデコードし、結果のバイナリファイルで、CSRのような文字列と、古い証明書に基づく署名から取得されたはずのCA参照を確認できます。したがって、コンテナ(CSR、署名)の考え方はもっともらしいようです。
しかし、私はまだそこにあるCSRを読む方法を見つけることができません!私は多くのことを試しましたが、ここでは詳細を示しませんが、ここで私が試したバリエーションの高いポイントを示します。pkcs12pkcs7 PEM DER req x509 verify ...
残念ながら、CSR自体をここに掲載することはできません。誰かがこのファイルの読み取り/確認方法を理解するのを手伝ってくれる?
openssl asn1parse
リクエストを読み取ることができ、そこから通常のCSRを抽出できます。私はまだ自己回答できません(あまりに早く解決しました)ので、質問をソリューションで更新し、明日修正します:-)