web-dev-qa-db-ja.com

cer、pvk、pfxファイルの違いは何ですか?

Cer、pvk、pfxファイルの違いは何ですか?また、どのファイルを保持し、どのファイルをカウンターパーティに提供する予定ですか?

178
Jonathan Allen

Windowsは、X.509証明書に.cer拡張子を使用します。これらは「バイナリ」(ASN.1 DER)にすることも、Base-64でエンコードしてヘッダーとフッターを適用することもできます(PEM)。 Windowsはどちらかを認識します。証明書の整合性を検証するには、発行者の公開キーを使用して署名を確認する必要があります...これは別の証明書です。

Windowsは、PKCS#12ファイルに.pfxを使用します。このファイルには、証明書、証明書チェーン、ルート認証局証明書、秘密鍵など、さまざまな暗号化情報を含めることができます。秘密鍵を秘密に保ち、ルート証明書の整合性を保持するために、そのコンテンツを暗号化で保護(パスワードで)できます。

Windowsは、秘密キーファイルに.pvkを使用します。 これらにWindowsがどの標準に従っているのかわかりません。うまくいけば、それらはPKCS#8でエンコードされたキーです。 Emmanuel Bourg は、これらが独自の形式であることを報告します。いくつかの ドキュメント が利用可能です。

秘密鍵は絶対に公開しないでください。これらは.pfxおよび.pvkファイルに含まれています。

通常、証明書(.cer)と中間発行者の証明書(つまり、ルートCAを除くすべてのCAの証明書)を他の関係者とのみ交換します。

123
erickson

Windowsプラットフォームでは、これらのファイルタイプは証明書情報に使用されます。通常、SSL証明書と公開キー基盤(X.509)に使用されます。

  • CERファイル:CERファイルは、X.509証明書の保存に使用されます。通常、Webサーバーのセキュリティを検証および識別するためにSSL証明書に使用されます。このファイルには、証明書の所有者と公開鍵に関する情報が含まれています。 CERファイルはバイナリ(ASN.1 DER)であるか、ヘッダーとフッターを含むBase-64でエンコード(PEM)できます。Windowsはこれらのレイアウトのいずれかを認識します。
  • PVKファイル:秘密鍵の略。 WindowsはPVKファイルを使用して、さまざまなMicrosoft製品のコード署名用の秘密キーを保存します。 PVKは独自の形式です。
  • PFXファイルPersonal Exchange Formatは、PKCS12ファイルです。これには、証明書、ルート認証局証明書、証明書チェーン、秘密鍵などのさまざまな暗号化情報が含まれます。秘密鍵を秘密に保ち、ルート証明書の整合性を維持するために、パスワードで暗号的に保護されています。 PFXファイルは、IISなどのさまざまなMicrosoft製品でも使用されます。

詳細については、次を参照してください: 証明書ファイル:.Cer x .Pvk x .Pfx

49
rahul_pratap

私は実際にこのようなものにあまり前に出くわしました... msdn でそれをチェックアウトします(最初の答えを見てください)

要約すれば:

.cer-X.509標準形式で保存された証明書。この証明書には、公開鍵と秘密鍵とともに、証明書の所有者に関する情報が含まれています。

.pvk-ファイルは、コード署名用の秘密鍵を保存するために使用されます。 .pvk秘密キーファイルに基づいて証明書を作成することもできます。

.pfx-個人交換フォーマットの略。単一のファイルでパブリックオブジェクトとプライベートオブジェクトを交換するために使用されます。 PFXファイルは、.cerファイルから作成できます。 ソフトウェア発行者証明書 の作成にも使用できます。

コメントからの提案に基づいて、ページの情報をまとめました。

19
Ryan Ferretti

興味のある人のために、このテーマが現在私に関係している限り、私の個人的な、超凝縮されたメモは次のとおりです。

  • PKCS12PEM証明書チェーン全体を保存できます: 公開鍵、秘密鍵 、および ルート(CA)証明書
  • 。pfx==。p12== "PKCS12 "
    • 完全に暗号化された
  • 。pem==。cer==。cert== "PEM"
    • base-64 (文字列)エンコード X509 cert (バイナリ)ヘッダーとフッター付き
      • base-64 は、基本的に "A-Za-z0-9 + /"の文字列であり、0〜63を表すために使用されます。残り物がある場合の最後の「=」文字(「=」は「filler/junk/ignore/throw away」文字です)
      • ヘッダーとフッターは、「----- BEGIN CERTIFICATE -----」および「----- END CERTIFICATE -----」または「----- BEGIN ENCRYPTED PRIVATE KEY ---」のようなものです-"および" ----- END ENCRYPTED PRIVATE KEY ----- "
    • Windowsは.cerと.certを証明書ファイルとして認識します
  • 。jks== "Java Key Store "
    • aPIが使用するJava固有のファイル形式のみ。
      • .p12および.pfxファイルは、JKS APIでも使用できます。
  • Trust Stores」には、public、trusted、 root(CA)certs が含まれていますが、「Identity/Key Stores "には、プライベートなID証明書が含まれています。ただし、ファイル単位では同じです。
18
Andrew