web-dev-qa-db-ja.com

期待:pemをcrtに変換する際の信頼できる証明書

秘密鍵と公開鍵のペアを生成し、公開鍵をトラストストアに追加できる証明書に変換しようとしています。

秘密鍵と公開鍵を生成するには:openssl rsa -in private.pem -outform PEM -pubout -out public_key.pem

これを証明書に変換しようとしています:

openssl x509 -outform der -in  public_key.pem -out  public.cer 

しかし、エラーが発生します:

7962:error:0906D06C:PEM routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.Apple.xbs/Sources/OpenSSL098/OpenSSL098-64.30.2/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE

すべてのチュートリアルは、トラストストアに追加する前に、pemをcrtに変換する必要があることを示しています。

14
user1692342

公開鍵を証明書に「変換」することはできません。証明書には公開鍵が含まれていますが、サブジェクト、発行者、証明書が有効である場合などの情報も含まれています。証明書は発行者によって署名されています。したがって、代わりに必要なのは、公開鍵を含むがすべての追加情報も含む証明書署名要求(CSR)を作成することです。次に、このCSRは認証局(CA)によって署名される必要があり、その結果、証明書が生成されます。

どのブラウザーからも信頼されていない単純な自己署名証明書の作成については、「 opensslで自己署名証明書を作成する方法 」を参照してください。

7
Steffen Ullrich

公開鍵を証明書に変換することはできません。

PEMエンコーディング/ファイル形式には、以下のような暗号化された証明書のテキストが含まれていると想定されているため、元のコマンドは機能しません。

-----証明書の開始-----

証明書データはこちら

-----証明書の終了-----

したがって、元の.PEMファイルを表示し、他の何か(BEGIN RSA ...など)を表示すると、それは正しくありません。

今あなたが探しているスレッドのタイトルに従ってPRTをCRTファイル形式に変換します。 x509証明書には、DERとPEMの2つのエンコーディングを使用できることに注意してください。また、PEMは.CRT、.CER、および.PEM形式内に含めることができます。

したがって、そのエラーが表示された場合は、DERエンコードされた証明書をPEMエンコードされた証明書として扱っている可能性もあります。この ページ の指示に従って、実際にDERエンコードされているかどうかを確認できます。

2
NASAhorse

内容がすべて1行(改行なし)のPEMファイルがあり、恐ろしい "期待:信頼できる証明書"エラーが発生しました。ヘッダーとフッターを分離し、コンテンツを次のように65文字で折り返すように再フォーマットしました(コンテンツは明確にするために切り捨てられています)。

-----BEGIN CERTIFICATE-----
MIIDpzCCAo+gAwIBAgIEOi33hzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC
2yVTopCvNW53GFCMZSBK6AqEup23gPZEgtDgXninRo/r1kxKbMu3XJneKEAmqxsR
9VG8slbQB2/+5mwA94zXYTZswuH+NuZCnadDydUvGGvtAMbgiSKWMmT7gYSPouLC
QRTC6fvVDQ4tIutsRUiRDvEdZ5BbcVcLkhxG4us5gS+80oA8fwoOg9Sv7ajwTB49
2OFp0mITFB3ZV0Z7zYxkcZPMLYe9+qocSgo/
-----END CERTIFICATE-----

PEM to DERコマンドを再度実行すると、動作します!

0
bratan