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.