Convertir Certificados .pem de Let’s Encrypt a .pfx (para IIS)

Desde hace varios años uso los certificados de Let’s Encrypt (LE) en mis servidores Linux. Pero ahora surgió la necesidad de un amigo de reemplazar su certificado que le caducó y tenía con una certificadora tradicional.

Y bueno, por la pandemia de COVID-19 y la crisis que se ha desatado, cada dólar cuenta y quiere ahorrarse ese dinero de emisión del certificado, emitiéndolo con LE. Cosa que de hecho hizo sin mucha complicación. Pero ahora quería instalarlo en un IIS…

Aquí es donde me llama para que le ayude y luego de una rápida googleada dí con el proceso, que es muy, muy simple en realidad:

Dependiendo de con qué agente se genere el certificado, podemos tener los archivos .pem con unos nombres u otros:

Con Certbot:

cert.pem
chain.pem
fullchain.pem
privkey.pem

Con acme.sh:

eldominio.tld.cer
ca.cer
fullchain.cer
eldominio.tld.key

Para un servidor Apache o NGINX, no hay ciencia, estos mismos archivos son los que se ponen en la configuración, pero no cuando se trata de IIS.

Windows quiere el certificado en formato PFX y afortunadamente en Linux tenemos OpenSSL que nos ayuda con el proceso de conversión. En el siguiente ejemplo uso los nombres egún certbot, pero es simplemente cuestión de adaptarlo para acme.sh:

openssl pkcs12 -export -out CertIIS.pfx -inkey privkey.pem -in cert.pem -certfile fullchain.pem

La instalación en IIS del archivo generado (CertIIS.pfx) fue también necesario googlear y me topé con esta guía de Godaddy, que nos sirvió para un IIS 8.5.

Espero que sea de utilidad, al menos a mi amigo le sirvió.