¿Cómo puedo convertir un certificado de Windows en un formato PEM, que incluye la cadena + raíz?

1

Necesito importar un certificado en una inspección de Cisco Ironport for Web SSL. El único formato de entrada compatible es PEM.

Según mi investigación, el formato PEM es compatible con todos los certificados de la cadena, pero no estoy seguro de cómo convertir un DER / CER / P7b en PEM que incluya la cadena.

He estado usando los siguientes comandos de OpenSSL para hacer la conversión, sin embargo, parece que no estoy obteniendo la cadena completa. ¿Me falta un interruptor?

  

Extracción de la clave pública (certificado)

     

Necesitará acceso a un   Ordenador ejecutando OpenSSL. Copie su archivo PFX a esta computadora y   ejecuta el siguiente comando:

     

openssl pkcs12 -in <filename.pfx> -clcerts -nokeys -out certificate.cer

     

Esto crea el archivo de clave pública llamado "certificate.cer" Nota: Estos   Las instrucciones han sido verificadas usando OpenSSL en Linux. Alguna sintaxis   Puede variar en la versión de Win32.

     

Extraer y descifrar la clave privada

     

La WSA requiere que la clave privada no esté encriptada. Utilizar el   siguiendo los comandos de OpenSSL:

     

openssl pkcs12 -in <filename.pfx> -nocerts -out privatekey-encrypted.key

     

Se te pedirá "Ingresar Importar contraseña". Esta es la contraseña   creado en el paso 11 anterior. También se le pedirá "Ingresar PEM   frase de contraseña ". es la contraseña de cifrado (utilizada a continuación).

     

Esto creará el archivo de clave privada cifrada llamado   "privatekey-encrypted.key"

     

Para crear una versión descifrada de esta clave, use el siguiente comando:

     

openssl rsa -in privatekey-encrypted.key -out private.key

    
pregunta random65537 31.12.2014 - 18:27
fuente

1 respuesta

1

La especificación de openssl pkcs12 -nokeys -clcerts dice NO dar salida a ningún certificado de cadena. Si los certificados de cadena están presentes en el PKCS12, omita -clcerts para incluirlos en la salida de PEM. Estarán presentes en el PKCS12 si lo crea con el Asistente de exportación de Windows y marque Include all certificates in the certification path if possible , que no es el predeterminado (al menos en mis sistemas). Esto incluirá (normalmente? Siempre?) La raíz, aunque algo que se hace pasar por este tema en SSL / TLS, que supongo que es lo que hace su Ironport, en realidad no necesita la raíz, solo la cadena debajo de la raíz. (Técnicamente, podría necesitar incluso menos, dependiendo del almacenamiento en caché y la presencia, el soporte y el éxito de AIA, pero eso se vuelve demasiado complicado).

Tenga en cuenta que la salida de certificados en formato PEM de pkcs12 -nokeys incluye unas pocas líneas de información antes de cada bloque BEGIN / blob / ----- END. Esta es una extensión menor para PEM implementada por OpenSSL pero no para todos los demás. Si el Ironport realmente está llamando a OpenSSL, y muchos programas que requieren PEM lo hacen porque están llamando a OpenSSL, está bien. Si no, y Ironport está haciendo su propia o alguna otra implementación estricta de PEM, edite el archivo para eliminar los comentarios.

Además, no es necesario crear la clave privada cifrada y luego descifrarla. Por lo general, es mejor cifrar la clave privada, pero aparentemente la necesita sin cifrar, por lo que puede usar openssl pkcs12 -nocerts -nodes con la entrada y salida adecuadas. A menos que las instrucciones que usted está citando realmente signifiquen, pero no digan que necesitan un formato "tradicional" sin cifrar (PKCS1 en lugar de PKCS8). Para eso, debe usar OpenSSL 0.9.8 * (que es muy antiguo, pero aún se admite a partir de ahora) donde pkcs12 (import) escribe la clave privada en el formato tradicional, o con OpenSSL más reciente, deje que pkcs12 (import) escriba PKCS8 y luego convierta al tradicional con rsa pero incluso así puede tener el PKCS8 y el tradicional ambos sin encriptar.

Por último, para mayor claridad, P7B solo contiene certificados, no privatekey, por lo que no es suficiente para suplantar al sujeto. Las otras opciones en el Asistente de exportación no son simplemente DER y Base-64, que tienen muchas otras opciones y usos, sino DER o Base-64 (en realidad PEM) que codifica el certificado X.509 específicamente ; no contienen la cadena ni la clave privada y son aún más insuficientes.

    
respondido por el dave_thompson_085 01.01.2015 - 16:56
fuente

Lea otras preguntas en las etiquetas