LINUX

Cómo convertir y usar el certificado PKCS # 12 / PFX en Apache

convertir certificado pfx

Cuando tenemos varios servidores y necesitamos utilizar el mismo certificado SSL, como en un entorno de equilibrador de carga o utilizando certificados SSL comodín, deberá transferir los certificados entre los servidores. Normalmente, la transferencia SSL de servidor a servidor será fácil si se realiza entre servidores del mismo tipo, como servidores Linux o servidores Windows.

Pero el proceso se vuelve un poco más difícil cuando se trata de un servidor de Windows a Linux. En este caso, necesitamos exportar los certificados SSL del servidor de Windows y almacenarlos en un archivo .pfx. Después de eso, necesitamos copiar este archivo .pfx (PKCS # 12 /) al servidor Linux y convertir ese archivo a un formato de archivo compatible con Apache como certificado individual, paquete de CA y archivos de clave privada y usarlo.

Esto también puede ser necesario cuando cambie de empresa de alojamiento. Explicaré el proceso exacto con instrucciones paso a paso en este artículo sobre cómo puede usar con éxito un certificado .pfx del servidor Windows en un servidor Linux que ejecuta Apache.

Diferencia entre el archivo .pfx y .crt

Antes de comenzar con nuestro proceso de conversión, permítame darle una descripción rápida sobre la diferencia entre el archivo .pfx y .crt. Básicamente, un certificado (archivo .crt) es un contenedor para la clave pública. Incluye la clave pública, el nombre del servidor, información adicional sobre el servidor y una firma calculada por una autoridad de certificación (CA). Durante el protocolo de enlace SSL, el servidor envía su clave pública a un cliente, que en realidad contiene su certificado, con algunas otras cadenas de certificados.

En otras manos, un archivo .pfx es un archivo PKCS # 12 que se asemeja a una bolsa que puede contener muchos objetos con protección de contraseña opcional. Normalmente, un archivo PKCS # 12 contiene un certificado (posiblemente con su conjunto variado de certificados CA) y su clave privada correspondiente.

Comencemos con nuestro proceso de conversión ahora.

Paso 1: transfiera el certificado pfx desde el servidor de Windows a nuestro servidor Linux

En primer lugar, exporté mi certificado a un certificado .pfx desde el servidor de Windows para mi dominio puebe.com. Y he copiado ese archivo pfx a mi servidor Linux usando SCP desde mi sistema local a la carpeta «/ transferidos_certificados /». Puede usar FTP, SCP, wget o usar cualquiera de estos métodos para transferir el certificado pfx a su servidor Linux.

# transfered_certificates]# ll
-rw-r--r-- 1 root root 5409 Oct 9 10:02 c667cafbf01ffd7310db952e50eaf2b2.pfx

Paso 2: Convierta el archivo .pfx usando OpenSSL

Nuestro siguiente paso es extraer nuestro certificado, clave y paquete de CA requeridos de este certificado .pfx para el dominio puebe.com. Podemos usar el comando OpenSSL para extraer estos detalles del archivo pfx. Veamos los comandos para extraer la información requerida de este certificado pfx.

Extrayendo el certificado del archivo pfx

Podemos usar este comando para extraer los detalles del certificado para el dominio puebe.com del archivo pfx.

# openssl pkcs12 -in c667cafbf01ffd7310db952e50eaf2b2.pfx -clcerts -nokeys -out puebe.com.crt
Enter Import Password:
MAC verified OK

Esto nos proporcionará nuestro archivo de certificado de dominio, a saber puebe.com.crt con un formato compatible que admita Linux.

Extrayendo el archivo Key del archivo pfx

Podemos usar este comando para extraer los detalles clave del dominio puebe.com del archivo pfx.

# openssl pkcs12 -in c667cafbf01ffd7310db952e50eaf2b2.pfx -nocerts -nodes -out puebe.com.key
Enter Import Password:
MAC verified OK

Esto nos proporcionará nuestro archivo de clave de dominio, a saber puebe.com.key

Extrayendo la Cadena de certificados del archivo pfx

Podemos usar este comando para extraer la cadena de detalles del certificado del archivo pfx.

# openssl pkcs12 -in c667cafbf01ffd7310db952e50eaf2b2.pfx -out puebe.com-ca.crt -nodes -nokeys -cacerts
Enter Import Password:
MAC verified OK

Esto nos proporcionará nuestra cadena de certificados para nuestro dominio puebe.com en el archivo puebe.com-ca.crt.

Copié estos archivos extraídos en mi carpeta cert en «/ etc / pki / tls / certs /». Puede hacer esto si es necesario, pero si no, puede especificar directamente la ruta de la carpeta en la configuración de Apache a la que ha extraído estos archivos.

[root@li1005-45 certs]# ll puebe.com*
-rw-r--r-- 1 root root 3689 Oct 9 10:10 puebe.com-ca.crt
-rw-r--r-- 1 root root 1954 Oct 9 10:06 puebe.com.crt
-rw-r--r-- 1 root root 1828 Oct 9 10:07 puebe.com.key


Paso 3: Asignar el certificado SSL de dominio a Apache

Después de haber convertido el archivo .pfx, deberá copiar los archivos recién creados al servidor Apache y editar su archivo de configuración de Apache para usarlos. Creé un host virtual para mi dominio en la carpeta /etc/httpd/conf.d/ para habilitar SSL e incluí estos archivos extraídos según sea necesario. Consulte los detalles de mi host virtual a continuación:

[root@li1005-45 conf.d]# cat puebe_ssl.conf
<VirtualHost puebe.com:443>
DocumentRoot "/var/www/html/puebe.com/public_html/"
ServerName www.puebe.com:443
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA

SSLCertificateFile /etc/pki/tls/certs/puebe.com.crt
SSLCertificateKeyFile /etc/pki/tls/certs/puebe.com.key
SSLCertificateChainFile /etc/pki/tls/certs/puebe.com-ca.crt

#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<Files ~ ".(cgi|shtml|phtml|php3?)$">
 SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
 SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" 
nokeepalive ssl-unclean-shutdown 
downgrade-1.0 force-response-1.0

# Per-Server Logging:
# The home of a custom SSL log file. Use this when you want a
# compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log 
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"

</VirtualHost>

Puede modificar los nombres de los archivos y las rutas para que coincidan con sus archivos de certificado:
SSLCertificateFile debe ser su archivo de certificado principal para su nombre de dominio.
SSLCertificateKeyFile debe ser el archivo clave extraído.
SSLCertificateChainFile debe ser el archivo de cadena de certificado intermedio.

Solo asegúrese de ejecutar una prueba de configuración y reinicie el servicio Apache una vez que haya terminado con esto.

# apachectl configtest
Syntax OK
# service httpd restart

Ahora puede confirmar el certificado SSL de su dominio utilizando cualquiera de las herramientas de verificación SSL disponibles. O simplemente puede navegar por la URL >>https://puebe.com/. Verifiqué mi instalación de SSL en el enlace

>> https://www.sslshopper.com/ssl-checker.html#hostname=puebe.com

Así es como podemos transferir fácilmente certificados de un servidor de Windows a una distribución de Linux. Espero que este artículo sea informativo y útil para ti. Publique sus valiosos comentarios y sugerencias al respecto.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar