Pide tu presupuesto ya!

Conversión de certificados CRT a PEM

Si se encuentra ante un obstáculo de compatibilidad, consulte cómo un enfoque integral en desarrollo web puede mejorar las integraciones antes de convertir los certificados CRT a PEM. Imagínese tener el certificado SSL ideal para su aplicación, pero desafortunadamente, no todas las aplicaciones levantan la mano para aceptarlo. Si se encuentra ante un obstáculo de compatibilidad, ¿por qué no convertir los certificados CRT a PEM?En este tutorial, descubrirá el misterio de convertir certificados CRT a PEM, garantizando que sus medidas de seguridad se adapten perfectamente a cualquier aplicación. Nunca más dejes que los formatos SSL te mantengan despierto por la noche. ¡Navega por los matices de la compatibilidad de certificados!

Requisitos previos

Asegúrese de tener lo siguiente en su lugar, ya que son esenciales para seguir sin problemas este tutorial:
  • Una máquina que admita OpenSSL y NGINX: este tutorial utiliza Windows 10 Pro 22H2.
  • Un Servidor NGINX configuración: este tutorial tiene NGINX instalado en una carpeta raíz (C:\nginx).
  • OpenSSL instalado.

Cambio de extensiones de archivo de certificados CRT Base64 a PEM

En su búsqueda por optimizar la seguridad mediante la conversión de certificados CRT a PEM, la primera tarea consiste en cambiar el nombre de los certificados CRT Base64. Pero este tutorial trata sobre conversiones, entonces, ¿por qué cambiar las extensiones de archivo? Los certificados Base64 CRT y PEM ya tienen el mismo formato; Ambos constan de caracteres ASCII que puedes abrir en cualquier editor de texto. Por lo tanto, será suficiente cambiar las extensiones de archivo de sus certificados CRT Base64 a PEM; no se requiere conversión. Para cambiar las extensiones de archivo de certificados CRT codificados en Base64 a PEM, siga estos pasos: 1. Cambie el nombre de su certificado para cambiar su extensión de archivo de .crt a .pemComo se muestra abajo.
Cambiar las extensiones de archivo de certificados CRT codificados en Base64 a PEM
2. Cuando se le solicite, haga clic en para confirmar el cambio de extensión del archivo.
Confirmando el cambio de extensión del archivo
Confirmando el cambio de extensión del archivo
Observe que el ícono del archivo es diferente y el tipo de archivo cambió de Certificado de seguridad a Archivo PEM.
Verificando el cambio exitoso de la extensión del archivo
Verificando el cambio exitoso de la extensión del archivo
3. Abra su certificado PEM en su editor de texto preferido y verá que el cambio de extensión del archivo no afectó el contenido del certificado.
Verificar el contenido del nuevo certificado PEM
Verificar el contenido del nuevo certificado PEM

Conversión de certificados CRT a PEM mediante el asistente de exportación de certificados

A diferencia de los certificados codificados en Base64, el archivo CRT codificado en DER está en formato binario. Si bien puede abrir un certificado codificado en DER en un editor de texto, el contenido aparece como caracteres ininteligibles, como se muestra a continuación, lo que dificulta su interpretación.
Ver el contenido del certificado codificado en DER
Ver el contenido del certificado codificado en DER
Para convertir certificados CRT al formato PEM a través del Asistente para exportación de certificados, primero exportará el certificado codificado en Base63, de la siguiente manera: 1. Abra el cuadro de diálogo Ejecutar (Win+R), ingrese certmgr.mscy haga clic DE ACUERDO (o presione Entrar) para abrir el Administrador de certificados.
Abrir el Administrador de certificados
Abrir el Administrador de certificados
2. A continuación, expanda Personal (panel izquierdo), elija Certificadoslocalice y haga clic derecho en su certificado DER → Todas las tareasExportar. Aparece el Asistente para exportación de certificados, donde puede elegir opciones para exportar su certificado DER (paso tres).
Iniciar la exportación de un certificado DER
Iniciar la exportación de un certificado DER
3. En la página de bienvenida, haga clic en Próximo continuar.
Continuando con los certificados de exportación
Continuando con los certificados de exportación
4. Ahora, elige qué opción se adapta mejor a tus necesidades. Pero para este tutorial, elija no exportar la clave privada y haga clic en Próximo continuar.
Elegir no exportar la clave privada
Elegir no exportar la clave privada
5. Para el formato de archivo, elija la segunda opción ya que está exportando su certificado DER como Codificado en Base64 uno (.CER) y haga clic Próximo.
Seleccionar el formato codificado en Base64
Seleccionar el formato codificado en Base64
6. Busque su ubicación preferida para exportar el certificado codificado en Base64 y haga clic en Próximo para confirmar.
Explorar una ubicación para exportar el certificado codificado en Base64
Explorar una ubicación para exportar el certificado codificado en Base64
7. Posteriormente, revise la configuración seleccionada y haga clic en Finalizar para completar la exportación de su certificado codificado en Base64.
Finalizando la exportación del certificado codificado en Base64
Finalizando la exportación del certificado codificado en Base64
8. Busque el certificado codificado en Base64 exportado y cambie su extensión de archivo de .cer a .pem.
Cambiar la extensión del archivo .cer a .pem
Cambiando el .cer extensión de archivo a .pem
9. Por último, abra su nuevo certificado PEM en un editor de texto y verá que los datos ahora están en caracteres ASCII.
Verificar el contenido del certificado exportado y convertido a PEM
Verificar el contenido del certificado exportado y convertido a PEM

Aprovechamiento de OpenSSL: conversión de certificados multiplataforma

Si bien el Asistente para exportación de certificados funciona bien para convertir certificados, el inconveniente radica en la naturaleza tediosa del proceso. Pero ¿por qué perder el tiempo con un enfoque paso a paso cuando se puede lograr el mismo resultado con una sola orden? Para aquellos que se inclinan por las interfaces de línea de comandos (CLI), OpenSSL surge como una solución para una gestión de certificados eficiente y fluida. Para aumentar su atractivo, OpenSSL es multiplataforma, lo que permite a los usuarios administrar certificados sin problemas en sistemas Windows y Linux. Para aprovechar OpenSSL para convertir certificados a PEM, complete los pasos a continuación: 1. Abra PowerShell (como administrador) o terminal en su sistema y cambie el directorio donde se encuentra su certificado codificado en DER. 2. A continuación, ejecute lo siguiente openssl comando (que no tiene salida) ya sea que esté en un sistema Windows o Linux. Este comando convierte su certificado codificado en DER (es decir, myDERCRT.crt) a PEM (-outform) llamado myDERCRT.pem (arbitrario).
openssl x509 -inform der -in myDERCRT.crt -outform pem -out myDERCRT.pem
3. Por último, verifique que los datos del certificado ahora estén en caracteres ASCII, como se muestra a continuación.
Verificación del certificado DER convertido a PEM
Verificación del certificado DER convertido a PEM

Aplicación de PowerShell para convertir certificados binarios (DER) a PEM

Al igual que el versátil conjunto de herramientas OpenSSL, PowerShell es otra fuerza que surge a tener en cuenta en las secuencias de comandos y la automatización. Tratar con un montón de certificados todos los días puede resultar un poco excesivo. Allí mismo, en la mezcla, PowerShell resulta útil. PowerShell te permite crear funciones interesantes y reutilizables para automatizar las cosas tediosas y repetitivas. Con las funciones de PowerShell, puede manejar diversos certificados sin sudar. Para convertir certificados binarios a PEM, proceda con lo siguiente: 1. Cree un script de PowerShell llamado ConvertirDERaPEM.ps1 (arbitrario) en su editor, como Visual Studio Code (VSCode), agregue el siguiente código y guarde el archivo. Este código utiliza un function que solicita al usuario que proporcione el nombre del certificado DER y lo convierta en un certificado PEM codificado en Base64.
function ConvertDERtoBase64PEM {
    param (
        [string]$certificateName
    )
	# Test if the certificate file exist
    if (-not (Test-Path $certificateName -PathType Leaf)) {
        Write-Host "Error: Certificate file not found."
        return
    }

    # Check if OpenSSL is installed by checking the PATH for openssl executable
    $opensslPath = Get-Command openssl -ErrorAction SilentlyContinue

	# If not, display a message
    if (-not $opensslPath) {
        Write-Host "Error: OpenSSL is not found in the PATH. Please ensure OpenSSL is installed and try again."
        return
    }

    # Determine the output filename without the original extension
    $outputFile = [System.IO.Path]::ChangeExtension($certificateName, "pem")

    # Convert DER to Base64-encoded PEM using OpenSSL
    & openssl x509 -inform der -in $certificateName -outform pem -out $outputFile

	# Display message of successful conversion
    Write-Host "Conversion completed. The Base64-encoded PEM certificate has been saved: `n$((Resolve-Path $outputFile).Path)"
}

# MAIN SCRIPT ====================

# Prompt user for certificate name
$certificateName = Read-Host "Name or full path of the DER-encoded certificate file to convert (include extension):"

# Call the conversion function
ConvertDERtoBase64PEM -certificateName $certificateName
2. A continuación, abra PowerShell como administrador, cambie el directorio donde se encuentra su certificado y ejecute lo siguiente para ejecutar su script (ConvertDERtoPEM.ps1). Proporcione el nombre de su certificado codificado en DER, incluida la extensión del archivo (es decir, miDERCRT.crt).
Conversión de un certificado codificado en DER a PEM mediante PowerShell
Conversión de un certificado codificado en DER a PEM mediante PowerShell
3. Ahora, abra el archivo convertido en su editor de texto para verificar que los datos estén ahora en caracteres ASCII.
Verificación del certificado DER convertido a PEM
Verificación del certificado DER convertido a PEM

Integración del certificado PEM convertido con NGINX

Independientemente del método que haya utilizado para convertir su certificado al formato PEM, la pregunta fundamental es: ¿Se integra perfectamente con NGINX? Debe configurar NGINX para escuchar el puerto HTTPS y señalar dónde se encuentran su certificado y archivo de clave. Para probar su certificado PEM convertido con NGINX, complete los pasos a continuación: 1. Abra PowerShell como administrador, navegue hasta C:\nginx donde instaló NGINX y ejecutó lo siguiente, que no tiene salida pero ejecuta NGINX como un servicio. 2. A continuación, abra su navegador web favorito y visite http://localhost, que redirige su navegador a la página de bienvenida de NGINX, como se muestra a continuación. Pero, actualmente, solo puedes acceder al host local a través de HTTP (no HTTPS), una situación que abordarás en el siguiente paso.
Accediendo al localhost (a través de http) utilizando el servicio NGINX
Accediendo al localhost (a través de http) utilizando el servicio NGINX
3. Posteriormente, ejecute lo siguiente New-Item comando, que no tiene salida pero crea una nueva carpeta (Directory) llamado C:\nginx\conf\ssl.
New-Item -ItemType Directory -Path C:\nginx\conf\ssl
4. Ahora, ejecuta el Move-Item comando a continuación para mover su certificado PEM (myDERCRT.pem) y clave (myDERCRT.key) hacia C:\nginx\conf\ssl carpeta. Este comando no produce ningún resultado, pero asegúrese de especificar la ruta del certificado y los archivos de clave.
Move-Item -Path "cert_path", "key_path" -Destination "C:\nginx\conf\ssl"
5. Abra el archivo de configuración de NGINX (C:\nginx\conf\nginx.conf) en su editor de texto y agregue la siguiente configuración dentro del bloque del servidor. Asegúrese de reemplazar cert.pem y cert.key con el nombre real de su certificado y clave, guarde los cambios y cierre el editor.
# Listen on port 443 with SSL support
listen 443 ssl;

# Listen on IPv6 address on port 443 with SSL support
listen [::]:443 ssl;

# Specify the SSL certificate file path
ssl_certificate ssl/cert.pem;

# Specify the SSL certificate key file path
ssl_certificate_key ssl/crt.key;

# Specify the supported SSL/TLS protocols
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
Configurar NGINX para escuchar el puerto HTTPS (443)
Configurar NGINX para escuchar el puerto HTTPS (443)
6. Vuelva a PowerShell y ejecute el siguiente comando dentro de la carpeta raíz donde instaló NGINX (C:\nginx). Este comando no proporciona salida a la consola pero le permite reload el servicio NGINX. 7. Una vez que NGINX se recarga, cierre y vuelva a abrir su navegador y navegue hasta https://localhost en su navegador para probar su certificado PEM. Verá una advertencia sobre un certificado no válido ya que está utilizando un certificado autofirmado. Pero que no cunda el pánico. Vaya al siguiente paso para confiar en su certificado PEM.
 Accediendo al localhost a través de HTTPS usando NGINX
Accediendo al localhost a través de HTTPS usando NGINX
8. Vuelva a PowerShell y ejecute estos comandos, que no producen ningún resultado, para que su certificado PEM sea confiable.
💡 También puede convertir esto en una función de PowerShell reutilizable creando un script (es decir, Certificado de confianza.ps1). Incluso puedes llamarlo en tu perfil de PowerShell agregando la ruta completa a tu script de la siguiente manera: . “/path/to/TrustCertificate.ps1”
# Specify the path to your PEM certificate
$certificatePath = "C:\\nginx\\conf\\ssl\\cert.pem"

# Create a new X.509 certificate object
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2

# Import the certificate from the specified path
$cert.Import($certificatePath)

# Create a new X.509 store for Trusted Root Certification Authorities on the Local Machine
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store("Root", "LocalMachine")

# Open the store, add the certificate to the store, and close the store
$store.Open("ReadWrite"); $store.Add($cert); $store.Close()
9. Luego, ejecute el siguiente comando para reload el servidor NGINX nuevamente. 10. Finalmente, actualice el https://localhost página para probar su nuevo certificado PEM de confianza. Si todo procede como se esperaba, la página de bienvenida de NGINX se vuelve a cargar en su navegador y, esta vez, la barra de direcciones ya no muestra “No seguro”. Este resultado confirma que su certificado PEM convertido protege efectivamente su conexión según lo previsto.
Verificar que el certificado PEM convertido funcione
Verificar que el certificado PEM convertido funcione

Conclusión

A lo largo de este viaje, ha adquirido un conjunto de habilidades versátiles en la gestión de certificados. Exploró varios métodos para convertir certificados CRT a PEM desde el paso fundamental de cambiar las extensiones de archivo. Estos métodos incluyen emplear el Asistente para exportación de certificados, aprovechar la flexibilidad de OpenSSL y organizar conversiones a través de secuencias de comandos de PowerShell. La cima de este viaje se alcanzó cuando integró perfectamente su certificado PEM convertido con NGINX, garantizando la transmisión segura de datos. Ahora, considere mejorar aún más su experiencia mientras reflexiona sobre estos logros. ¿Por qué no profundizar en una gestión de certificados más avanzada? Explore diversas herramientas y plataformas, ¡o incluso contribuya con sus conocimientos a la comunidad!
Written by

Leave a comment