es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Convertir archivos .pem a .crt utilizando Python3 OpenSLL. Para convertir un archivo .pem a .crt utilizando Python3 y OpenSSL, puedes seguir los siguientes pasos: 1. Asegúrate de tener instalado Python3 y OpenSSL en tu sistema. 2. Abre tu terminal de comandos. 3. Navega hasta el directorio donde se encuentra el archivo .pem que deseas convertir. 4. Ejecuta el siguiente comando: “` openssl x509 -outform der -in archivo.pem -out archivo.crt “` Asegúrate de reemplazar “archivo.pem” por el nombre del archivo .pem que deseas convertir y “archivo.crt” por el nombre que deseas para el archivo de salida .crt. 5. Presiona enter para ejecutar el comando. Esto convertirá el archivo .pem a .crt utilizando Python3 y OpenSSL. El archivo resultante estará en formato .crt y podrás utilizarlo según tus necesidades.

Soy nuevo en SSL y estoy tratando de encontrar algún método o código que pueda convertir archivos .pem a .crt usando Python3 y OpenSSL.
He buscado en la documentación de OpenSSL y hay recursos para scripts de shell, pero no pude encontrar mucho para Python3…

También intenté con un script de shell:

import os
cmd = 'openssl x509 -outform der -in cert.pem -out cert.pem.crt'
os.system(cmd)

pero cuando abro el archivo .crt recién convertido, obtengo palabras sin sentido en su lugar.

En lugar de las siguientes palabras o codificación:

—–BEGIN CERTIFICATE—–
… (certificado codificado en base64 PEM) …
—–END CERTIFICATE—–

Si alguien puede compartir alguna idea o código, sería de gran ayuda. Gracias de antemano.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Hay varias formas de convertir un archivo .pem a .crt utilizando Python3 y OpenSSL. Aquí está un enfoque:

    import OpenSSL
    
    # Cargar el archivo .pem
    with open("cert.pem", "rb") as pem_file:
        pem_data = pem_file.read()
    
    # Usar OpenSSL para analizar el certificado
    cert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, pem_data)
    
    # Convertir el certificado a formato DER
    der_data = OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_ASN1, cert)
    
    # Guardar los datos DER en un archivo .crt
    with open("cert.crt", "wb") as crt_file:
        crt_file.write(der_data)
    

    Este código utiliza el módulo OpenSSL en Python, que es un envoltorio alrededor de la biblioteca OpenSSL. Primero, carga el contenido del archivo .pem en memoria. Luego utiliza la función load_certificate para analizar los datos del certificado y convertirlos en un objeto X509 de OpenSSL. A continuación, utiliza la función dump_certificate para convertir el objeto X509 a formato DER. Finalmente, guarda los datos DER en un archivo .crt.

    Ten en cuenta que un archivo .crt es solo un formato de contenedor para un certificado en formato DER o PEM, por lo que el contenido del archivo aún aparecerá como texto sin sentido si lo abres en un editor de texto. Sin embargo, si cargas el archivo en un programa que espera un archivo de certificado (por ejemplo, un servidor web o una herramienta de gestión de certificados), debería funcionar correctamente.

Comments are closed.