Quelle est la différence entre un fichier cer, pvk et pfx?

204

Quelle est la différence entre un fichier cer, pvk et pfx? De plus, quels fichiers dois-je conserver et que dois-je remettre à mes contreparties?

Jonathan Allen
la source
Aussi [1] , [2] , [3]
Pacerier

Réponses:

143

Windows utilise l'extension .cer pour un certificat X.509. Celles-ci peuvent être en "binaire" (ASN.1 DER), ou elles peuvent être encodées en Base-64 et avoir un en-tête et un pied de page appliqués (PEM); Windows reconnaîtra non plus. Pour vérifier l'intégrité d'un certificat, vous devez vérifier sa signature à l'aide de la clé publique de l'émetteur ... qui est, à son tour, un autre certificat.

Windows utilise .pfx pour un fichier PKCS # 12. Ce fichier peut contenir diverses informations cryptographiques, notamment des certificats, des chaînes de certificats, des certificats d'autorité racine et des clés privées. Son contenu peut être protégé cryptographiquement (avec des mots de passe) pour garder les clés privées privées et préserver l'intégrité des certificats racine.

Windows utilise .pvk pour un fichier de clé privée. Je ne sais pas quel standard Windows (le cas échéant) suit pour ceux-ci. Espérons que ce sont des clés codées PKCS # 8. Emmanuel Bourg rapporte qu'il s'agit d'un format propriétaire. Une documentation est disponible.

Vous ne devez jamais divulguer votre clé privée. Ils sont contenus dans les fichiers .pfx et .pvk.

En règle générale, vous échangez uniquement votre certificat (.cer) et les certificats des émetteurs intermédiaires (c'est-à-dire les certificats de toutes vos autorités de certification, à l'exception de l'autorité de certification racine) avec d'autres parties.

erickson
la source
7
Les fichiers PVK ne sont pas dans le PKCS # 8, c'est un format propriétaire. Voir drh-consultancy.demon.co.uk/pvk.html
Emmanuel Bourg
recherchez l'utilitaire pvk2pfx.exe dans les SDK Windows
BozoJoe
@erickson, à quoi bon inventer .pvk? Le .pfx ne suffit-il pas?
Pacerier
@Pacerier Oui, .pfx suffit. Je ne sais pas à quoi servait le .pvk; Je peux seulement deviner qu'il a été inventé dans l'ignorance.
erickson
55

Dans la plate-forme Windows, ces types de fichiers sont utilisés pour les informations de certificat. Normalement utilisé pour le certificat SSL et l'infrastructure à clé publique (X.509).

  • Fichiers CER: le fichier CER est utilisé pour stocker le certificat X.509. Normalement utilisé pour la certification SSL pour vérifier et identifier la sécurité des serveurs Web. Le fichier contient des informations sur le propriétaire du certificat et la clé publique. Un fichier CER peut être en binaire (ASN.1 DER) ou encodé en Base-64 avec en-tête et pied de page inclus (PEM), Windows reconnaîtra l'une ou l'autre de ces dispositions.
  • Fichiers PVK: signifie clé privée. Windows utilise des fichiers PVK pour stocker des clés privées pour la signature de code dans divers produits Microsoft. PVK est un format propriétaire.
  • Fichiers PFX Personal Exchange Format, est un fichier PKCS12. Il contient une variété d'informations cryptographiques, telles que des certificats, des certificats d'autorité racine, des chaînes de certificats et des clés privées. Il est protégé par cryptographie avec des mots de passe pour garder les clés privées privées et préserver l'intégrité des certificats racine. Le fichier PFX est également utilisé dans divers produits Microsoft, tels que IIS.

pour plus d'informations, visitez: Fichiers de certificats: .Cer x .Pvk x .Pfx

rahul_pratap
la source
4
Fichiers Cer: .... "le fichier contient des informations sur le propriétaire du certificat et les clés de certificat publiques et privées" ... est incorrect. Comme l'a souligné erickson dans sa réponse: il ne contient que des informations sur la clé publique. Un fichier .cer avec des clés privées et publiques serait inutile.
thor_hayek
1
C'est faux. Le fichier .Cer ne contient aucune clé privée. Veuillez améliorer votre réponse.
ANewGuyInTown
36

Voici mes notes personnelles, super condensées, en ce qui me concerne actuellement, pour tous ceux qui sont intéressés:

  • Les deux PKCS12 et PEM peuvent stocker des chaînes de cert entières: les clés publiques, des clés privées et racine (CA) certs .
  • .pfx == .p12 == " PKCS12 "
    • entièrement crypté
  • .pem == .cer == .cert == " PEM "
    • codé en base 64 (chaîne) X509 (binaire) avec en-tête et pied de page
      • base-64 est fondamentalement juste une chaîne de "A-Za-z0-9 + /" utilisée pour représenter 0-63, 6 bits de binaire à la fois, en séquence, parfois avec 1 ou 2 "=" caractères au plus se termine quand il y a des restes ("=" étant "des caractères de remplissage / junk / ignorer / jeter")
      • l'en-tête et le pied de page sont quelque chose comme "----- BEGIN CERTIFICATE -----" et "----- END CERTIFICATE -----" ou "----- BEGIN ENCRYPTED PRIVATE KEY --- - "et" ----- FIN DE LA CLÉ PRIVÉE CRYPTÉE ----- "
    • Windows reconnaît .cer et .cert en tant que fichiers cert
  • .jks == " Java Key Store "
    • juste un format de fichier spécifique à Java que l'API utilise
      • Les fichiers .p12 et .pfx peuvent également être utilisés avec l'API JKS
  • Les " magasins de confiance " contiennent des certificats racine (CA) publics et approuvés, tandis que les " magasins d'identités / clés " contiennent des certificats d'identité privés; au niveau des fichiers, cependant, ce sont les mêmes.
Andrew
la source
Alors, où est défini .pvk?
zwcloud
@zwcloud J'ai donné ce que je savais à l'époque. Les autres réponses donnent cela.
Andrew
18

En fait, je suis tombé sur quelque chose comme ça il n'y a pas si longtemps ... vérifiez-le sur msdn (voir la première réponse)

En résumé:

.cer - certificat stocké au format standard X.509. Ce certificat contient des informations sur le propriétaire du certificat ... ainsi que des clés publiques et privées.

.pvk - les fichiers sont utilisés pour stocker des clés privées pour la signature de code. Vous pouvez également créer un certificat basé sur le fichier de clé privée .pvk.

.pfx - représente le format d'échange personnel. Il est utilisé pour échanger des objets publics et privés dans un seul fichier. Un fichier pfx peut être créé à partir du fichier .cer. Peut également être utilisé pour créer un certificat d'éditeur de logiciel .

J'ai résumé les informations de la page sur la base de la suggestion des commentaires.

Ryan Ferretti
la source
2
Je recommanderais de citer ou de résumer le contenu lié en plus du lien lui-même. De cette façon, vous accordez à la fois un crédit approprié et nous protégez de la perte d'informations la prochaine fois que MS remodelera son site.
Jonathan Allen
J'ai vu ce lien, mais je ne répond pas complètement à la question.
Jonathan Allen
15
De plus, certaines informations contenues dans le lien sont erronées. Par exemple, vous ne pouvez pas extraire une clé privée d'un certificat. Évidemment.
erickson
Pour le commentaire ci-dessus, il ne s'agit pas d'extraction. Il n'est tout simplement pas logique d'avoir des clés privées dans les fichiers .cer. Un fichier .cer est censé être partagé avec le monde extérieur, il ne porte donc que la clé publique.
Rajiv