.key および .crt ファイルから .pem ファイルを取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/991758

  •  13-09-2019
  •  | 
  •  

質問

SSL 証明書から PEM ファイルを作成するにはどうすればよいですか?

私が利用できるファイルは次のとおりです。

  • .crt
  • server.csr
  • server.key
役に立ちましたか?

解決

あなたのキーがすでにPEM形式であるが、ちょうど.CRTまたは.KEYと名付けあります。

ファイルの内容は-----BEGINで始まり、テキストエディタでそれを読むことができる場合は、

ファイルは、バイナリ形式ASCIIで読めないBASE64を使用しています。証明書は、PEM形式で既にあります。ただ、.PEMする拡張子を変更します。

ファイルがバイナリである場合は、

server.crtのために、あなたが使用する

openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem

server.keyのために、openssl rsaの代わりにopenssl x509を使用します。

server.keyのは、おそらくあなたの秘密鍵であり、.CRTファイルには、署名、返されたX509証明書ます。

これは、Webサーバーのためのものであり、あなたは別の秘密鍵と公開鍵をロードする指定ができない場合:

次の2つのファイルを連結する必要があるかもしれません。この使用の場合:

cat server.crt server.key > server.includesprivatekey.pem

私はあなたがこのファイルを使用しておくの権限を管理するのに役立つ「includesprivatekey」でファイルの命名をお勧めします。

他のヒント

私はAWS ELBのためにこれを行うために必要な。ダイアログで何度も殴ら取得した後、最終的にはこれが私のために働いていたものです。

openssl rsa -in server.key -text > private.pem
openssl x509 -inform PEM -in server.crt > public.pem

おかげ<のhref = "http://www.nczonline.net/blog/2012/08/15/setting-up-ssl-on-an-amazon-elastic-load-balancer/" のrel = "noreferrer 「> NCZ の

編集:@floatingrockが言うように

AWSでは、file://とファイル名を付加することを忘れないでください。だから、それは次のようになります:

 aws iam upload-server-certificate --server-certificate-name blah --certificate-body file://path/to/server.crt --private-key file://path/to/private.key --path /cloudfront/static/

http://docs.aws。 amazon.com/cli/latest/reference/iam/upload-server-certificate.htmlする

pemファイルには、証明書と秘密鍵が含まれています。それは、フォーマットに依存し、あなたの証明書/鍵がでていますが、おそらくそれは、このような単純なのです。

cat server.crt server.key > server.pem

また、あなたはそれが次のコマンドを実行する必要があり、その後、パスフレーズをお願いしたくない場合:

openssl rsa -in server.key -out server.key

これは.PEMファイルを作成するための最適なオプションです。

openssl pkcs12 -in MyPushApp.p12 -out MyPushApp.pem -nodes -clcerts

私が観察したことはある:あなたが証明書を生成するためにOpenSSLを使用している場合、それはテキスト部分とCRTファイル内のbase64証明書の一部の両方をキャプチャします。厳格なPEM形式は、ファイルが起動し、BEGINで終了する必要があること(ウィキ定義する)と言うと、 ENDます。

  

の.pem - (プライバシー強化メール)Base64エンコードDER証明書、   "----- BEGIN CERTIFICATE -----" と「----- ENDの間で囲まれました   CERTIFICATE ----- "

厳しいPEM形式を期待するいくつかのライブラリ(私はJavaでこれに遭遇しました)ためので、生成されたCRT「は無効PEM形式」として検証を失敗します。

あなたがコピーまたはBEGIN / END証明書を使用して行をgrepして、のcert.pemファイルに貼り付けた場合でも、それが動作するはずです。

ここで、私は何をすべきか非常にきれいではありませんが、私の作品、基本的には、ラインをBEGINから始まるテキストをフィルタリング

  

はgrep -A 1000年BEGIN cert.crt> cert.pemを

私はアプリエンジンへのGoDaddyから行くしようとしていました。どのようなトリックをしたことは、このラインを使用していた。

openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr

とまったく同じですが、(それは本当に重要だっさえないことを)私のドメイン名で名前を置き換える

そして私はwww.name.com

などの共通名/組織に関連するすべての質問に答え

それから私は、CSRを開いて、それをコピーし、行くお父さんにそれを貼り付け、それをダウンロードし、それを解凍し、ターミナルで解凍したフォルダに移動し、入力されます:

cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt

それから私は、Google AppsのカスタムドメインSSL トラブルからこれらの命令を使用しましたA>、そのうちます:

openssl rsa -in privateKey.key -text > private.pem
openssl x509 -inform PEM -in www_mydomain_com.crt > public.pem

正確にそのまま、代わりにprivateKey.keyのを除いて、私はname.unencrypted.priv.keyを使用し、代わりにwww_mydomain_com.crt、私はname.crtを使用

それから私は、「RSA秘密鍵をエンコードされた暗号化されていないPEM」「PEMエンコードX.509証明書」の管理コンソールへのpublic.pemをアップロードし、そして用private.pemをアップロード..

..そして、それが最終的に働いています。

AWSにGoDaddyの証明書をアップロードしようとすると、私は何回か失敗したが、最終的にそれはかなり簡単でした。 .PEMために何かを変換する必要はありません。あなただけの連鎖パラメータ、例えば中GoDaddyのバンドル証明書が含まれていることを確認する必要があります。

aws iam upload-server-certificate
    --server-certificate-name mycert
    --certificate-body file://try2/40271b1b25236fd1.crt
    --private-key file://server.key
    --path /cloudfront/production/
    --certificate-chain file://try2/gdig2_bundle.crt

以前失敗したアップロードを削除するには、そして、あなたが行うことができます。

aws iam delete-server-certificate --server-certificate-name mypreviouscert
  1. appleId を使用して暫定ポータルから証明書をダウンロードし、
  2. キーチェーンから証明書をエクスポートし、名前を付けます (Certificates.p12)。
  3. ターミナルを開き、上記の Certificates.p12 ファイルを保存したフォルダーに移動します。
  4. 以下のコマンドを実行します。

    a) openssl pkcs12 -in Certificates.p12 -out CertificateName.pem -nodes,

    b) openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts

  5. .pem ファイル「pushcert.pem」が完成しました。
  • ターミナルを開きます。
  • 証明書が存在するフォルダーに移動します。
  • 名前を証明書に置き換えて、以下のコマンドを実行します。

openssl pkcs12 -in YOUR_CERTIFICATE.p12 -out YOUR_CERTIFICATE.pem -nodes -clcerts

  • うまくいくことを願っています!!
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top