PKCS # 7 no incluye la parte privada (clave) de un par de certificado / clave privada, se usa comúnmente para la difusión de certificados (por ejemplo, como respuesta a una solicitud de certificado PKCS # 10, como un medio para distribuir certificados S / MIME Se utiliza para cifrar mensajes o para validar mensajes firmados, etc. Es importante recordar que es solo para certificados que son, por definición, elementos públicos.
PKCS # 12 es un contenedor más universal: está destinado a almacenar la clave privada y las partes del certificado público juntas para que puedan moverse. Tiene la capacidad de estar protegido con contraseña para proporcionar cierta protección a las teclas.
PFX fue el predecesor de PKCS # 12.
No puede (como señala Anitak) convertir de PKCS # 7 a PKCS # 12 sin datos adicionales (la parte de la clave privada) porque PKCS # 7 no tiene todos los datos.
Mark Sutton ha señalado por qué no puede exportar como PFX: el certificado en cuestión tiene su clave privada marcada como no exportable. El proveedor de servicios criptográficos (CSP) no permitirá que se mueva esa clave, esto es intencional. La única * forma en que puede obtener un par exportable cert \ key es si el Certificado original se emitió con el conjunto de banderas exportables. También es posible que no haya una clave privada asociada con el certificado, pero supongo que ese no es el caso aquí.
Hay un buen resumen de los diversos tipos de PKCS en Wikipedia .
- La única forma legítima al menos. Dependiendo del CSP \ Crypto Hardware, puede haber mecanismos, especialmente para el software solo CSP, pero esa es un área para la investigación de vulnerabilidades de seguridad solo en lo que a mí respecta, no el administrador de sistemas.
Paso por esto cada 2 años (cuando renuevo un certificado de firma de código) y es una molestia cada vez.
Una pieza clave de información es que simplemente puede cambiar el nombre de los archivos .p7b a .spc (como se indica aquí: http://support.microsoft.com/kb/269395 ).
Luego puede usar la herramienta pvk2pfx.exe para convertir su PVK + SPC en un PFX.
(puede omitir el paso de cambio de nombre de p7b y usarlo directamente; no lo he intentado ...)
fuente
Con la herramienta de Windows, si la opción pfx está desactivada, significa que la clave privada no se puede exportar desde la tienda local. Esto se debe a que no está allí (porque las claves no se generaron en el cuadro que está usando) o porque cuando generó las claves la clave privada no se marcó como exportable y la plantilla de certificado de Windows no se configuró para permitir la exportación.
Supongo que está utilizando una autoridad de certificación de Microsoft para emitir sus certificados. ¿Es esto correcto?
Si es así, entonces: -
1.Asegúrese de que la plantilla de certificado permita la exportación de claves privadas.
2.Cómo está generando su solicitud de certificado, puede usar la siguiente técnica
CREAR archivo INF de la siguiente manera
[Versión]
Firma = "$ Windows NT $
[NewRequest]
Asunto =" etc "
KeySpec = 1
Exportable = 1
MachineKeySet = TRUE
ProviderName =" CSPName "
ProviderType = 1
[RequestAttributes] CertificateTemplate =
NOTE the Exportable = 1
Luego use los comandos que aparecen en el símbolo del sistema
certreq -new infile.inf reqfile.req // donde infile.inf es el archivo de arriba y reqfile es el archivo de solicitud de salida
certreq -submit -config \ reqfile.req // Envía la solicitud de certificado a la CA
Una vez que esto esté completo, lo hará poder exportar el certificado como un pfx
Alternativamente, vaya a http://www.blacktipconsulting.com/Site/Products.html donde puse mi herramienta gratuita de línea de comandos que hace todo esto por usted y exporta el certificado como pfx una vez terminado
fuente
Como señaló Helvick, la respuesta de PKCS10 es PKCS7 y no contiene la clave privada. Entonces, al generar la CSR, debería haber generado el archivo privatekey.key. Puedes usar los siguientes comandos. (Sé que esta es una pregunta de cuatro años, pero no pude hacerlo mientras seguía la discusión en la página).
¡Buena suerte!
Saludos, JE
fuente
-inform
argumento.Podría estar equivocado, pero creo que su archivo PCKCS # 7 solo incluye la mitad pública de su certificado.
El archivo PKCS # 12 necesitaría tener ambas mitades, por lo tanto, necesita la
-inkey
opción.fuente