¿Cuál es la diferencia entre un archivo cer, pvk y pfx?

204

¿Cuál es la diferencia entre un archivo cer, pvk y pfx? Además, ¿qué archivos guardo y cuáles debo entregar a mis contrapartes?

Jonathan Allen
fuente
También [1] , [2] , [3]
Pacerier

Respuestas:

143

Windows usa la extensión .cer para un certificado X.509. Estos pueden estar en "binario" (ASN.1 DER), o pueden codificarse con Base-64 y tener un encabezado y pie de página aplicado (PEM); Windows lo reconocerá. Para verificar la integridad de un certificado, debe verificar su firma utilizando la clave pública del emisor ... que es, a su vez, otro certificado.

Windows usa .pfx para un archivo PKCS # 12. Este archivo puede contener una variedad de información criptográfica, incluidos certificados, cadenas de certificados, certificados de autoridad raíz y claves privadas. Su contenido puede protegerse criptográficamente (con contraseñas) para mantener privadas las claves privadas y preservar la integridad de los certificados raíz.

Windows usa .pvk para un archivo de clave privada. No estoy seguro de qué estándar (si alguno) sigue Windows para estos. Esperemos que sean claves codificadas PKCS # 8. Emmanuel Bourg informa que se trata de un formato propietario. Alguna documentación está disponible.

Nunca debe revelar su clave privada. Estos están contenidos en archivos .pfx y .pvk.

En general, solo intercambia su certificado (.cer) y los certificados de cualquier emisor intermedio (es decir, los certificados de todas sus CA, excepto la CA raíz) con otras partes.

erickson
fuente
77
Los archivos PVK no están en el PKCS # 8, es un formato propietario. Ver drh-consultancy.demon.co.uk/pvk.html
Emmanuel Bourg
busque la utilidad pvk2pfx.exe en los SDK de Windows
BozoJoe
@erickson, ¿Cuál es el punto de inventar .pvk? ¿No es suficiente .pfx?
Pacerier
@Pacerier Sí, .pfx es suficiente. No estoy seguro de cuál era el punto de .pvk; Solo puedo adivinar que fue inventado en la ignorancia.
erickson
55

En la plataforma Windows, estos tipos de archivos se utilizan para la información del certificado. Normalmente se utiliza para el certificado SSL y la Infraestructura de clave pública (X.509).

  • Archivos CER: el archivo CER se utiliza para almacenar el certificado X.509. Normalmente se utiliza para la certificación SSL para verificar e identificar la seguridad de los servidores web. El archivo contiene información sobre el propietario del certificado y la clave pública. Un archivo CER puede estar en binario (ASN.1 DER) o codificado con Base-64 con encabezado y pie de página incluido (PEM), Windows reconocerá cualquiera de estos diseños.
  • Archivos PVK: significa clave privada. Windows usa archivos PVK para almacenar claves privadas para la firma de código en varios productos de Microsoft. PVK es un formato propietario.
  • Archivos PFX Personal Exchange Format, es un archivo PKCS12. Contiene una variedad de información criptográfica, como certificados, certificados de autoridad raíz, cadenas de certificados y claves privadas. Está criptográficamente protegido con contraseñas para mantener privadas las claves privadas y preservar la integridad de los certificados raíz. El archivo PFX también se usa en varios productos de Microsoft, como IIS.

para obtener más información, visite: Archivos de certificados: .Cer x .Pvk x .Pfx

rahul_pratap
fuente
44
Archivos Cer: .... "el archivo contiene información sobre el propietario del certificado y las claves de certificado públicas y privadas" ... es incorrecto. Como erickson señaló en su respuesta: solo contiene información sobre la clave pública. Un archivo .cer con claves privadas y públicas sería inútil.
thor_hayek
1
Esto está mal. El archivo .Cer no contiene ninguna clave privada. Por favor, mejora tu respuesta.
ANewGuyInTown
36

Aquí están mis notas personales, súper condensadas, en lo que respecta a este tema actualmente, para cualquier persona interesada:

  • Tanto PKCS12 como PEM pueden almacenar cadenas de certificados completas: claves públicas, claves privadas y certificados raíz (CA) .
  • .pfx == .p12 == " PKCS12 "
    • totalmente encriptado
  • .pem == .cer == .cert == " PEM "
    • base-64 (cadena) codificado X509 cert (binario) con un encabezado y pie de página
      • base-64 es básicamente una cadena de "A-Za-z0-9 + /" utilizada para representar 0-63, 6 bits de binario a la vez, en secuencia, a veces con 1 o 2 caracteres "=" en el mismo finaliza cuando hay restos ("=" ser "caracteres de relleno / basura / ignorar / tirar")
      • el encabezado y el pie de página son algo así como "----- COMENZAR CERTIFICADO -----" y "----- FINALIZAR CERTIFICADO -----" o "----- COMIENCE LA CLAVE PRIVADA ENCRIPTADA --- - "y" ----- FINALIZAR CLAVE PRIVADA ENCRIPTADA ----- "
    • Windows reconoce .cer y .cert como archivos cert
  • .jks == " Java Key Store "
    • solo un formato de archivo específico de Java que utiliza la API
      • Los archivos .p12 y .pfx también se pueden usar con la API JKS
  • Los " Almacenes de confianza " contienen certificados públicos, de confianza, raíz (CA) , mientras que los " Almacenes de identidad / clave " contienen certificados de identidad privados; en cuanto a archivos, sin embargo, son lo mismo.
Andrés
fuente
Entonces, ¿dónde se define .pvk?
zwcloud
@zwcloud Di lo que sabía en ese momento. Las otras respuestas dan eso.
Andrew
18

En realidad, me encontré con algo como esto no hace mucho tiempo ... échale un vistazo en msdn (mira la primera respuesta)

En resumen:

.cer: certificado almacenado en el formato estándar X.509. Este certificado contiene información sobre el propietario del certificado ... junto con claves públicas y privadas.

.pvk: los archivos se utilizan para almacenar claves privadas para la firma de código. También puede crear un certificado basado en un archivo de clave privada .pvk.

.pfx: significa formato de intercambio personal. Se utiliza para intercambiar objetos públicos y privados en un solo archivo. Se puede crear un archivo pfx a partir del archivo .cer. También se puede utilizar para crear un Certificado de editor de software .

Resumí la información de la página basada en la sugerencia de los comentarios.

Ryan Ferretti
fuente
2
Recomendaría citar o resumir el contenido vinculado además del enlace en sí. De esa manera, ambos otorgan el crédito adecuado y nos protegen de perder la información la próxima vez que MS rediseñe su sitio.
Jonathan Allen
He visto ese enlace, pero no respondo completamente la pregunta.
Jonathan Allen
15
Además, parte de la información en el enlace es incorrecta. Por ejemplo, no puede extraer una clave privada de un certificado. Obviamente.
erickson
Para el comentario anterior, no se trata de extracción. Simplemente no tiene sentido tener claves privadas en archivos .cer. Se supone que un archivo .cer se comparte con el mundo exterior, por lo que solo lleva una clave pública.
Rajiv