私は2台のDebianサーバーの保守を担当しています。セキュリティ証明書について何かしなければならないことがあるたびに、チュートリアルをググって、最終的にうまくいくまで殴り続けます。
しかし、検索しているとしばしば異なるファイル形式(.key
, .csr
, .pem
)に出くわしますが、それぞれのファイル形式がどのような目的を持っているのか、きちんとした説明を見つけることができません。
ServerFaultの皆さんは、この件について何か明確な説明をしてくれるでしょうか?
SSLは長い間使われているので、コンテナ・フォーマットも合意されているはずです。そして、あなたは正しい。その通りです。だから、これは私が知っていることで、他の人からも意見があると思います。
/etc/ssl/certs
など)、または公開鍵、秘密鍵、ルート証明書を含む証明書チェーン全体を含むことができます。紛らわしいことに、PKCS10フォーマットはPEMに変換することができるので、CSRをエンコードすることもできる(例えばここで使われているように)。この名前はPrivacy Enhanced Mail (PEM)に由来する。PEMはセキュアな電子メールのための失敗したメソッドであるが、使用されたコンテナフォーマットは存続しており、x509 ASN.1キーのbase64翻訳である。/etc/ssl/private
に置かれます。これらのファイルの権限は非常に重要で、設定が間違っていると、これらの証明書のロードを拒否するプログラムもあります。この他にも、時々現れるフォーマットがいくつかある:
openssl x509 -inform der -in to-convert.der -out converted.pem
)。Windowsはこれらを証明書ファイルと見なす。デフォルトでは、Windowsは別の拡張子を持つ.DER形式のファイルとして証明書をエクスポートします。例えば.keystore
を拡張子として使用します。pem形式の証明書とは異なり、この形式には認証パス証明書を含めるための定義された*方法があります。まとめると、証明書とそのコンポーネントを提示する方法は4つある:
参考になれば幸いである。
PEMは証明書ではなく、単なるデータのエンコード方法です。 X.509証明書は、一般的にPEMを使ってエンコードされるデータの一種です。
PEMはX.509証明書(その構造はASN.1を使って定義されている)をASN.1のDER(識別符号化規則)を使って符号化し、Base64符号化を通してプレーンテキストのアンカー行(BEGIN CERTIFICATEとEND CERTIFICATE)の間に貼り付けたものである。
PKCS#7 または PKCS#12 表現を使用して同じデータを表現することができ、openssl コマンドラインユーティリティを使用してこれを行うことができます。
PEMの明らかな利点は、アンカー行があり、7ビットでクリーンであるため、電子メール・メッセージの本文に貼り付けても安全であることです。
RFC1422に、鍵と証明書に関連するPEM標準についての詳細がある。
.crtファイルがすでに
.pem`になっていることもある。参照: https://stackoverflow.com/questions/991758/openssl-pem-key