web-dev-qa-db-ja.com

cerをpemに変換する際のOpenSSLエンコーディングエラー

Opensslを使用して.cerファイルを.pemに変換しようとしています。コマンドは次のとおりです。

openssl x509 -inform der -in certnew.cer -out ymcert.pem

そしてそれが私が得ているエラーです:

unable to load certificate
140735105180124:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319:
140735105180124:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=X509

何が悪いのですか?

23
Arthur Kushman

私もこの問題を抱えていました。 CERの名前をPEMに変更するだけで十分です:)

12
L0g0ff

既存の回答 を拡張するには、 ssl.comで説明 のように、.cerファイルをderまたはpemエンコーディングのいずれかにすることができます。 derエンコーディングの場合は、これまでと同じように変換を行う必要がありますが、すでにpemエンコーディングの場合は変換する必要はなく、試してもエラーが発生します。名前を変更するだけです。ファイル。

不明な場合は、.derがバイナリ形式であるのに対し、.pemはASCII形式であることを知っておくとよいでしょう。証明書の内容をエコーすると、.pemファイルは次のようになります。

-----BEGIN CERTIFICATE-----
MIIEuTCCA6G[snip lots of chars]
XmCpajQ==
-----END CERTIFICATE-----

そして、.derファイルは次のようになります。

0▒▒0▒▒▒@*▒H▒▒▒▒▒0
0▒▒1
    0   UUS10U
VeriSign, Inc.10U
                 VeriSign Trust Network1:08U
20
eis

CRT形式で同様の問題があり、pemへの変換中にエラーが発生します。私はL0g0ffのように同じことを行い、それは動作します。詳細は以下をご覧ください。

  1. 証明書の詳細を確認しました:

    openssl x509 -in certificate.crt -noout -text

  2. 拡張子をcertificate.crtからcertificate.pemに変更した後、予期した形式でファイルを取得します:

-----BEGIN CERTIFICATE----- ........................... -----END CERTIFICATE-----

0
tarkos