Instalar certificado PFX en nginx

Nos habrá pasado muchas veces, que nos pasan un certificado web en formato PFX y nos rompemos la cabeza para poder instalarlo en un servidor web apache o nginx.

Pues con esta pequeña entrada explico como extraer la clave privada, intermedia y publica del certificado PFX para poder utilizarlo en un servidor web apache o nginx.

Lanzamos estos comandos openssl para extraer las claves.

# Extraemos la clave pública
openssl pkcs12 -in ./certificado.pfx -clcerts -nokeys -out publica.crt

# Extraemos la clave intermedia
openssl pkcs12 -in ./certificado.pfx -clcerts -nokeys -chain -out intermedia.crt

# Extraemos la clave privada
openssl pkcs12 -in ./certificado.pfx -nocerts -nodes -out privada.rsa


Juntamos la clave intermedia y publica en un fichero fullchain.crt

cat intermedia.crt >> fullchain.crt
cat publica.crt >> fullchain.crt

Y creamos el fichero ssl.conf para utilizar el certificado en un nginx

server {
  server_name example.org;
  listen 443 ssl;
  ssl_certificate /etc/nginx/ssl/fullchain.crt;
  ssl_certificate_key /etc/nginx/ssl/privado.rsa;
  ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers         HIGH:!aNULL:!MD5;
}