秘密公開鍵ペアを生成し、公開鍵を追加可能な証明書に変換しようとしています
秘密の&公開鍵を生成するには: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に変換する必要があることが示されています。
回答
できません “公開鍵を証明書に変換します。証明書には公開鍵が含まれますが、件名、発行者、証明書が有効な場合などの詳細情報も含まれます。また、証明書は発行者によって署名されます。したがって、代わりに必要なのは、公開鍵を含むだけでなく、すべての追加情報を含む証明書署名要求(CSR)を作成することです。次に、このCSRは認証局(CA)によって署名される必要があり、その結果、証明書が作成されます。
どのブラウザからも信頼されない単純な自己署名証明書を作成するには、 opensslを使用して自己署名証明書を作成する方法を参照してください。 。
コメント
- したがって、この例では、openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 key.pemには秘密鍵と公開鍵の両方が含まれますか?
- @ user1692342:I 'コメント内の質問が元の質問とどのように関連しているかわかりません。ただし、key.pemは秘密鍵であり、には公開鍵が含まれます。公開鍵はcert.pemにも含まれます。
回答
公開鍵を証明書に変換することはできません。
PEMエンコーディング/ファイル形式には次のような暗号化された証明書テキストが含まれていると想定されているため、元のコマンドは機能しません。
—– BEGIN CERTIFICATE —–
ここに証明書データ
—– END CERTIFICATE —–
したがって、元の.PEMファイルを表示して他の何か(BEGIN RSA …など)を表示した場合、それは正しくありません。
スレッドのタイトルによると、 PEMをCRTファイル形式に変換しようとしています。 x509証明書は、DERとPEMの2つのエンコーディングにすることができることに注意してください。また、PEMは.CRT、.CER、および.PEM形式の範囲内である可能性があります。
したがって、そのエラーが表示された場合は、DERエンコードされた証明書をPEMエンコードされた証明書として扱っている可能性もあります。このページの手順に従って、実際にDERエンコードされているかどうかを確認できます。