Generar certificados SSL

Gracias a la organización Let’s Encrypt podemos generar certificados SSL de forma totalmente gratuita, sencilla y rápida. El único inconveniente es que tendremos que renovarlos cada 3 meses, aunque el proceso de creación y renovación apenas lleva unos segundos.

Los comandos de esta entrada son para Mac OSX, aunque en Linux y Windows son muy similares.

Paso 1: Instalar CERTBOT

brew install certbot

Paso 2: Crear una CARPETA DE TRABAJO

mkdir ~/Documents/LetsEncrypt
cd ~/Documents/LetsEncrypt

Paso 3: Generar el CERTIFICADO

certbot certonly \
--manual \
--key-type rsa \
--email micorreo@gmail.com \
-d "b2b.midominio.es" \
--agree-tos \
--preferred-challenges=dns \
--config-dir ~/Documents/LetsEncrypt \
--work-dir ~/Documents/LetsEncrypt \
--logs-dir ~/Documents/LetsEncrypt

En este momento, como hemos elegido el DNS Challenge, tendremos que crear el registro TXT en el DNS que nos indica certbot. Será algo similar a esto:

  • Name: _acme-challenge.b2b.midominio.es.
  • Value: 0wDXXvV11MJwCzR-Nc5c6VWnjp_O2iGT0Tavf5pD7-h

Certbot nos pide pulsar cualquier tecla una vez creado el registro DNS. Antes de pulsarla, es importante comprobar que el registro DNS se ha propagado adecuadamente y que está disponible. Para ello, podemos usar el siguiente comando (que nos propone certbot):

https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.b2b.midominio.es.

Una vez que el DNS se ha propagado, pulsamos cualquier tecla, y certbot genera el certificado en la carpeta indicada (~/Documents/LetsEncrypt)

Se genera tanto el el certificado en formato PEM como la clave privada en formato PEM (texto plano).

Paso 4 (Opcional) Pasar de PEM a PFX

En determinadas ocasiones necesitamos el archivo PFX (que incluye el certificado de clave pública y la clave privada protegida por una contraseña). Para ello podemos usar OpenSSL:

openssl pkcs12 -export -out midominio_es.pfx -inkey midominio_es.key -in midominio_es.cer