.pemを.crt、.keyに変換する。

どなたか、.pemファイルから証明書.crtと秘密鍵.keyファイルを抽出/変換する正しい方法/コマンドを教えていただけませんか?私はちょうどそれらが相互交換可能であることを読んだが、方法はない。

質問へのコメント (2)
ソリューション

これを使ってpemをcrtに変換することができました:

openssl x509 -outform der -in your-cert.pem -out your-cert.crt
解説 (12)

OpenSSLを用いた変換について。 これらのコマンドにより、証明書や鍵を異なる形式に変換して、特定の種類のサーバーやソフトウェアと互換性を持たせることができます。

  • DER ファイル (.crt .cer .der) を PEM に変換する。 openssl x509 -inform der -in certificate.cer -out certificate.pem

  • PEMファイルをDERに変換する openssl x509 -outform der -in certificate.pem -out certificate.der

  • 秘密鍵と証明書を含むPKCS#12ファイル(.pfx .p12)をPEMに変換する。 openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes 秘密鍵のみを出力する場合は-nocertsを、証明書のみを出力する場合は-nokeysを追加することができます。

  • PEM証明書ファイルと秘密鍵をPKCS#12(.pfx .p12)へ変換する。 openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

  • PEMからCRT(.CRTファイル)への変換 openssl x509 -outform der -in certificate.pem -out certificate.crt OpenSSLでPEMを変換する

  • PEMをDERに変換する openssl x509 -outform der -in certificate.pem -out certificate.der

  • PEMをP7Bに変換する openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer

  • PEMをPFXに変換する openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt OpenSSLでDERを変換する

  • DERをPEMに変換する openssl x509 -inform der -in certificate.cer -out certificate.pem OpenSSLコンバートP7B」。

  • P7BをPEMに変換する openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

  • P7BをPFXに変換する openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer OpenSSL変換PFX」です。

  • PFXをPEMに変換する openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes OpenSSLでrsa鍵を生成する

  • コマンドラインでOpenSSLを使用する場合、まず公開鍵と秘密鍵を生成する必要があります。このファイルは-passout引数でパスワード保護する必要があります。 OpenSSL Genrsa -out private.pem 1024

  • これにより、1024ビットを使用するprivate.pemという鍵ファイルが作成されます。このファイルには実は秘密鍵と公開鍵の両方が含まれているので、このファイルから公開鍵を取り出してください: openssl rsa -in private.pem -out public.pem -outform PEM -pubout または

     openssl rsa -in private.pem -pubout > public.pem
     または
    
     openssl rsa -in private.pem -pubout -out public.pem

    公開鍵を含むpublic.pemができ、これを第三者と自由に共有することができます。 公開鍵を使って自分で何かを暗号化し、秘密鍵を使って復号化することで、すべてをテストすることができます。まず、暗号化するデータが少し必要です:

  • ファイルの例 : 例)ファイル: echo '秘密が多すぎる' > file.txt

  • file.txtにあるデータをOpenSSLで暗号化し を公開鍵にします: openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl

  • これは、file.txtの暗号化バージョンをfile.sslと呼びます。 このファイルを見ると、ただのバイナリー・ジャンクで、何の役にも立ちません。 誰でもいい。これで秘密鍵を使って暗号化を解除することができます: openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt

  • これで、decrypted.txtに暗号化されていないファイルが作成されます: cat decrypted.txt |output -> あまりにも多くの秘密があります。 OpenSSLにおけるRSA TOOLSのオプション

  • NAME

    rsa - RSA鍵処理ツール

  • シノプシス**は >openssl rsa [-help] [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-aes128] [-aes192] [-aes256] [-camellia128] [-)camellia192] [-camellia256] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-RSAPublicKey_in] [-RSAPublicKey_out] [-engine id] [-エンジンのID

  • DESCRIPTION rsa コマンドは、RSA 鍵を処理するコマンドです。RSA鍵は様々な形式に変換され、その構成要素をプリントアウトすることができます。このコマンドは秘密鍵の暗号化に従来のSSLeay互換形式を使うことに注意してください:新しいアプリケーションではpkcs8ユーティリティを使ってより安全なPKCS#8形式を使うべきです。

  • コマンドのオプション -ヘルプ

    使用メッセージをプリントアウトします。 -inform DER|NET|PEM 入力形式を指定する。DERオプションは、PKCS#1 RSAPrivateKeyまたはSubjectPublicKeyInfo形式と互換性のあるASN1 DER符号化形式を使用します。PEM形式はデフォルトの形式であり、DER形式をbase64エンコードし、さらにヘッダーとフッターの行を追加したものである。PKCS#8形式の秘密鍵の入力も可能である。NET形式は、NOTESセクションに記載されている形式である。 -アウトフォーム DER|NET|PEM 出力形式を指定するもので、オプションは-informオプションと同じ意味である。 -inファイル名 このオプションが指定されていない場合は、標準入力から鍵を読み込むための入力ファイル名を指定します。鍵が暗号化されている場合、パスフレーズが要求されます。 -passin arg 入力ファイルのパスワードソースです。argのフォーマットについては、opensslのPASS PHRASE ARGUMENTSセクションを参照してください。 -アウトファイル名 鍵を書き込む出力ファイル名、またはこのオプションが指定されていない場合は標準出力を指定します。暗号化オプションが設定されている場合は、パスフレーズが要求されます。出力ファイル名は、入力ファイル名と同じであってはならない。 -パスアウトパスワード 出力ファイルのパスワードソースです。argのフォーマットについての詳細は、opensslのPASS PHRASE ARGUMENTSセクションを参照してください。 -aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea これらのオプションは、秘密鍵を指定された暗号で暗号化して出力します。パスフレーズが要求されます。これらのオプションが指定されない場合、鍵はプレーンテキストで書き出されます。つまり、暗号化オプションを指定せずに暗号化された鍵を読み込むrsaユーティリティを使えば、鍵からパスフレーズを取り除くことができ、暗号化オプションを設定すれば、パスフレーズを追加したり変更したりすることができる。これらのオプションは、PEM 形式の出力ファイルに対してのみ使用することができます。 -テキスト 符号化されたバージョンに加え、様々な公開鍵または秘密鍵の構成要素を平文で出力します。 -noout このオプションは、エンコードされたバージョンの鍵の出力を防止します。 -modulus このオプションは、鍵のモジュラスの値を出力します。 -check このオプションは、RSA秘密鍵の整合性をチェックします。 -pubin デフォルトでは、入力ファイルから秘密鍵が読み込まれますが、このオプションを使用すると、代わりに公開鍵が読み込まれます。 -pubout デフォルトでは秘密鍵が出力されますが、このオプションを指定すると、代わりに公開鍵が出力されます。このオプションは、入力が公開鍵である場合に自動的に設定されます。 -RSAPublicKey_in, -RSAPublicKey_out RSAPublicKey形式を用いる以外は、-pubin、-puboutと同様です。 -エンジンID エンジンを指定すると、rsaは指定されたエンジンの機能的な参照を取得しようとし、必要に応じて初期化します。そのエンジンは、利用可能なすべてのアルゴリズムでデフォルトとして設定されます。

  • 注釈 PEM秘密鍵のフォーマットでは、ヘッダーとフッターの行を使用します: -----RSA秘密鍵の開始------。 -----RSA秘密鍵の終了------。 PEM公開鍵フォーマットは、ヘッダーとフッターの行を使用します: -----公開鍵の開始------。 -----終了公開鍵------。 PEM RSAPublicKeyフォーマットは、ヘッダーとフッターの行を使用します: -----RSA公開鍵の開始------。 -----RSA公開鍵の終了------。 NET形式は、古いNetscapeサーバーやMicrosoft IISの.keyファイルと互換性のある形式で、これはその暗号化に無塩RC4を使っています。これはあまり安全ではないので、必要なときだけ使用するようにしてください。 IISのいくつかの新しいバージョンは、エクスポートされた.keyファイルに追加のデータを持っています。ユーティリティでこれらを使用するには、バイナリエディタでファイルを表示し、文字列 "private-key" を探し、バイトシーケンス 0x30, 0x82 (これは ASN1 SEQUENCE です) をトレースしてください。これ以降のデータをすべて別のファイルにコピーし、それをrsaユーティリティの入力として、-inform NETオプションを付けて使用します。 EXAMPLES RSA秘密鍵のパスフレーズを削除する場合: openssl rsa -in key.pem -out keyout.pem トリプルDESを使用して秘密鍵を暗号化する場合: openssl rsa -in key.pem -des3 -out keyout.pem 秘密鍵をPEM形式からDER形式に変換する場合: openssl rsa -in key.pem -outform DER -out keyout.der 秘密鍵の構成要素を標準出力に出力する: openssl rsa -in key.pem -text -noout 秘密鍵の公開部分のみを出力する場合: openssl rsa -in key.pem -pubout -out pubkey.pem 秘密鍵の公開部分を RSAPublicKey 形式で出力する: openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem

解説 (2)

pemファイルから鍵や証明書を抽出する場合:

抽出キー

openssl pkey -in foo.pem -out foo.key

別の方法として、キーを抽出する...

openssl rsa -in foo.pem -out foo.key

CA Chainを含むすべての証明書を抽出します。

openssl crl2pkcs7 -nocrl -certfile foo.pem | openssl pkcs7 -print_certs -out foo.cert

テキスト形式の最初の証明書をDERとして抽出する。

openssl x509 -in foo.pem -outform DER -out first-cert.der
解説 (1)

.crtは証明書を保存します。. ペム形式で。 したがって、.pemは、csr(証明書署名リクエスト)、秘密鍵、公開鍵、またはその他の証明書などの他のものも持つことができますが、証明書だけを保存する場合、.crtと同じです。

pemは、各セクションの間にヘッダーとフッターがあるベース64エンコードされたファイルです。

特定のセクションを抽出するには、次のようなperlスクリプトが完全に有効ですが、opensslコマンドのいくつかを自由に使用してください。

 perl -ne "\$n++ if /BEGIN/; print if \$n == 1 && /BEGIN/.../END/;" mydomain.pem

ここで、== 1は必要なセクションに変更できます。 明らかに、必要なヘッダーとフッターを正確に知っていて、ファイルにそれらの1つしかない場合(通常、証明書とキーだけをそこに保持している場合)、それを簡略化できます。

 perl -ne "print if /^-----BEGIN CERTIFICATE-----\$/.../END/;" mydomain.pem
解説 (0)

mkcertを使用しているときにこの質問をした場合、トリックは .pemファイルがcertであり、 -key.pemファイルがキーであることです。

(変換する必要はありません。 mkcert yourdomain.dev otherdomain.devを実行してください)。

解説 (0)