cómo importar una clave privada en Windows

30

Diga que tengo un certificado X.509 y una clave privada que corresponde a él. Puedo importar certificados X.509 fácilmente en Windows pero ¿qué pasa con las claves privadas?

¿Es la única forma en que puedo hacerlo al convertir tanto el certificado como la clave privada en un archivo de "Intercambio de información personal (PKCS # 12)" e importarlo?

¿Quizás esta pregunta sería mejor en superuser.com? De cualquier manera, gracias!

    
pregunta neubert 26.12.2012 - 16:18
fuente

4 respuestas

28

La respuesta a tu pregunta es Sí . Debe convertir el X.509 en un PFX e importar. No hay un almacén de claves separado en Windows.

Puedes convertir tu certificado a través de OpenSSL con el siguiente comando:

openssl pkcs12 -export -out cert.pfx -inkey private.key -in cert.crt -certfile CACert.crt

    
respondido por el k1DBLITZ 26.12.2012 - 21:38
fuente
6

En Windows, puede tener claves privadas "por sí mismas". Programáticamente, utiliza CryptAquireContext() para acceder a una clave "por nombre". CryptoAPI contiene muchas funciones que le permiten importar y usar claves, independientemente de los certificados.

Sin embargo, no existe una interfaz gráfica o formato de archivo para manejar las claves privadas, y las aplicaciones no usan las claves por su nombre. Utilizan certificados . Los certificados, en Windows, se almacenan "en otra parte", pero cada certificado en la tienda "Mi" puede contener opcionalmente un enlace a una clave privada correspondiente (el enlace realmente sería un nombre de CSP y el nombre de un contenedor dentro de ese CSP). Esto se asigna a lo que se espera en varios protocolos. Por ejemplo, en SSL, cuando el servidor solicita una autenticación de cliente con una clave privada, en realidad solicita un certificado: el cliente debe presentar un certificado y, luego, demostrar que también tiene acceso a la clave privada correspondiente.

Por lo tanto, en la práctica, los certificados y las claves "viven juntas" y las claves se obtienen solo a través de los certificados. Un certificado y su clave privada viajan juntos, y esto significa un archivo PKCS # 12 (también conocido como "PFX").

    
respondido por el Thomas Pornin 27.12.2012 - 19:32
fuente
0

Un PKCS12 (* .p12, o * .pfx) es absolutamente la manera más fácil. Existen bastantes herramientas comunes para combinar un par de claves y un certificado en una p12. Mi favorito es OpenSSL, ya que funciona en todos los sistemas operativos en los que he necesitado usarlo y cumple con los estándares razonablemente. Aquí 'una diversa colección de páginas sobre cómo, aunque el kilometraje variará dependiendo de cómo El par de claves y el certificado están actualmente almacenados.

También: la mayoría de los dispositivos con capacidad de exportación ofrecerán una opción de generación PKCS12 si las configuraciones permiten la exportación de claves: es más o menos el estándar para la mayoría de las aplicaciones habilitadas para PKI, y los pocos casos en los que no es la norma (Java, por ejemplo ), todavía suele haber una capacidad de conversión o exportación.

Una nota: si tiene un caso en el que su clave se encuentra en un token o módulo de hardware, aún puede hacer referencia a ella desde Microsoft Cert Store: solo tiene que importar el certificado e indicar a Microsoft dónde se almacena la clave. ... para hacer esto, debe seguir las instrucciones del dispositivo para actualizar el almacén de certificados.

    
respondido por el bethlakshmi 31.12.2012 - 20:50
fuente
-4

Los pares de claves Pub / priv deben importarse a Windows usando un PKCS12 (.p12 / pfx) cuando lo esté utilizando como un certificado de cliente. Eso es todo lo que hay aquí ...

Si lo estás importando a IIS, es un poco diferente, pero eso no parece ser lo que estás haciendo. Por si acaso, IIS requiere un formato ligeramente diferente al X.509 para sus certificados; requiere un PKCS7 en lugar del X.509 genérico porque PKCS7 incluye los certificados de firmante, mientras que X.509 solo tiene el certificado individual que se ha firmado. Esto difiere de la implementación típica de Apache en la que los certificados de firmante se incluyen en un paquete de certificados [de confianza].

    
respondido por el JZeolla 26.12.2012 - 17:27
fuente

Lea otras preguntas en las etiquetas