Windowsワークステーションでopensslを使用して証明書署名要求を解析できないのはなぜですか

Windowsワークステーションでopensslを使用して証明書署名要求を解析できないのはなぜですか

ワークステーション: Windows Pro 8.1 OpenSSL バージョン: 1.0.2d-x64

Exchange 2010 管理コンソールで生成された CSR があります。openssl で自己署名したいのですが、CSR の解析に問題があります。次のコマンドで CSR を検証しようとしています。

.\openssl 要求 -config .\openssl.cnf -in c:\temp\Exchange2010.csr -noout -text

しかし、なぜこのような反応が返ってくるのかは分かりません

X509 リクエストを読み込めません

13756:エラー:0906D06C:PEM ルーチン:PEM_read_bio:開始行がありません:.\crypto\pem\pem_lib.c:701:期待するもの: CERTIFICATE REQUEST

私が読んだところによると、この出力は openssl が PEM 形式を解析しようとしていることを示しています。また、DER 形式で解析するように指示することもできると読みました。私が使用するコマンドは次のとおりです。

.\openssl req -config .\openssl.cnf -inform DER -in c:\temp\Exchange2010.csr -noout -text

しかし、そのコマンドの出力は次のようになります。

X509 リクエストを読み込めません

16928:エラー:0D0680A8:asn1 エンコード ルーチン:ASN1_CHECK_TLEN:タグが間違っています:.\crypto\asn1\tasn_dec.c:1180:

16928:エラー:0D07803A:asn1 エンコード ルーチン:ASN1_ITEM_EX_D2I:ネストされた asn1 エラー:.\crypto\asn1\tasn_dec.c:365:Type=X509_REQ

CSR が何らかの理由で破損している可能性があると思ったので、オンラインで CSR 検証ツールを見つけました。このツールは CSR を正常に解析し、予想されるフィールド データをすべて返します。

ここで何が欠けているのでしょうか?

答え1

EMCによって生成されるCSRの形式はバイナリです。

certutil.exe -encode binary.csr ascii.csr

関連情報