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


回答:


143

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の証明書)のみを他の当事者と交換します。


7
PVKファイルはPKCS#8ではなく、独自の形式です。drh-consultancy.demon.co.uk/pvk.htmlを
Emmanuel Bourg

Windows SDKでpvk2pfx.exeユーティリティを探します
BozoJoe

@ erickson、.pvkを発明する目的は何ですか?.pfxで十分ではありませんか?
Pacerier 2016年

@Pacerierはい、.pfxで十分です。.pvkのポイントが何であったかわかりません。私はそれが無知で発明されたと推測できます。
エリクソン2016年

55

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

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

詳細については、証明書ファイル:.Cer x .Pvk x .Pfxをご覧ください。


4
Cerファイル:.... "ファイルには証明書の所有者と公開および秘密証明書のキーに関する情報が含まれています" ...は正しくありません。エリクソンが彼の答えで指摘したように:公開鍵に関する情報のみが含まれています。秘密鍵と公開鍵の両方を含む.cerファイルは役に立たないでしょう。
thor_hayek

1
これは間違っています。.Cerファイルには秘密鍵が含まれていません。答えを改善してください。
ANewGuyInTown 2017

36

興味がある人のために、この主題が現在私に関係している限り、私の個人的な超凝縮されたメモはここにあります:

  • PKCS12PEMはどちらも、証明書チェーン全体(公開鍵、秘密鍵ルート(CA)証明書)を保存できます
  • .pfx == .p12 == " PKCS12 "
    • 完全に暗号化された
  • .pem == .cer == .cert == " PEM "
    • ヘッダーとフッター付きのbase-64(文字列)エンコードされたX509証明書(バイナリ)
      • base-64は、基本的には、「A-Za-z0-9 + /」の文字列であり、一度に0〜63のバイナリの6ビットを順番に表します。残り物があるときに終了します( "="は "filler / junk / ignore / throw away"文字です)
      • ヘッダーとフッターは、「----- BEGIN CERTIFICATE -----」および「----- END CERTIFICATE -----」または「----- BEGIN ENCRYPTED PRIVATE KEY ---」のようなものです。 -"および" ----- END ENCRYPTED PRIVATE KEY ----- "
    • Windowsは.cerおよび.certを証明書ファイルとして認識します
  • .jks == " Javaキーストア "
    • APIが使用するJava固有のファイル形式
      • .p12および.pfxファイルはJKS APIでも使用できます
  • トラストストア」には、公開された信頼できるルート(CA)証明書が含まれていますが、「アイデンティティ/キーストア」には、プライベートなID証明書が含まれています。ただし、ファイルに関しては同じです。

では、.pvkはどこで定義されているのでしょうか。
zwcloud 2019

@zwcloud当時知っていたものを提供しました。他の答えはそれを与えます。
Andrew

18

私は実際にそれほど前にこのようなものに遭遇しました... msdnで確認して ください(最初の回答を参照)

要約すれば:

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

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

.pfx-パーソナルエクスチェンジフォーマットを表します。1つのファイルでパブリックオブジェクトとプライベートオブジェクトを交換するために使用されます。.cerファイルからpfxファイルを作成できます。ソフトウェア発行元証明書の作成にも使用できます。

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


2
リンク自体に加えて、リンクされたコンテンツを引用または要約することをお勧めします。そうすることで、あなたは適切な信用を与え、次にMSがサイトを再設計するときに情報を失うことから私たちを保護します。
ジョナサンアレン

そのリンクを見たことがありますが、質問には完全には答えていません。
ジョナサンアレン

15
また、リンクの一部の情報が間違っています。たとえば、証明書から秘密キーを抽出することはできません。明らかに。
エリクソン2010

上記のコメントに、それは抽出についてではありません。.cerファイルに秘密鍵を含めることは意味がありません。.cerファイルは外部と共有されることになっているため、公開鍵のみが含まれます。
Rajiv 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.