Cómo Generar un Certificado SSL Gratis en Local

Aprende a generar un Certificados SSL para un determinado Sitio Web pero en Local para posteriormente instalarlo a través del Panel de Control del Hosting Web.

Para habilitar HTTPS en tu sitio web, se debe contar con un Certificado SSL validado por una Autoridad de Certificación (CA por sus siglas en ingles).

Let’s Encrypt es una CA de uso gratuito, pero debemos demostrar tener control del dominio a certificar. El modo de gestionar los certificados es a través de software de terceros (llamados clientes) que usan el protocolo ACME, el cual corre en el mismo servidor web.

Certbot es un cliente ACME para gestionar los Certificados SSL, que desde mi opinión es de los que más funcionalidades aporta al proyecto, es fácil de utilizar, funciona en una gran variedad de sistemas operativos y tiene una excelente documentación.

Por cuestiones de suguridad, muchos de los proveedores de hosting, restringen el acceso a través de conexiones SSH, que es la forma más común de gestionar el software en el servidor web. En algunos casos los proveedores incluyen soporte para Let´s Encrypt y que puedes encontrar un icono relacionado en tu panel de control del mismo hosting.

Si tu proveedor de hosting no tiene soporte para Let’s Encrypt y tampoco tiene acceso a conexiones SSH, pero si tiene soporte para subir certificados custom, puedes instalar Certbot en tu propia computadora y ejecutarlo en modo manual, que es la forma en que se explica en este artículo y posteriormente configurar el certificado en tu hosting.

El inconveniente de este modo, es que deberás realizar el proceso de renovación varias veces al año dado que los certificados tienen vigencia de solo 90 días.

Para instalar Certbot en tu computadora, visita su página oficial en https://certbot.eff.org/ y en el apartado “My HTTP website is running” selecciona “None of the above” (dado que no es un servidor web sino nuestra computadora local) y en “System” selecciona el sistema operativo de tu computadora. Así, te mostrara las instrucciones y/o ligas de descarga de la aplicación para el sistema operativo seleccionado.

Una vez instalado Certbot es necesario ejecutarlo con derechos de Administrador, el comando ha ejecutar es:

certbot + subcomando + parametros:

Dado que queremos obtener solo el certificado y que no se instale en nuestra computadora (se instalará en el servidor web), debemos incluir el subcomando certonly.

Y también, dado que no estamos en un Servidor Web, debemos ejecutarlo en modo “manual” con el parámetro --manual.

El parámetro --preferred-chllenges es opcional, por defecto utiliza el reto http pero este se complica a la hora de manejar subdominios o alias del dominio según sea la configuración de tu hosting web. Por eso optamos por el reto dns y evitar complicaciones.

Entonces la ejecutamos todo de la siguiente manera:

certbot certonly --manual --preferred-challenges dns

La aplicación nos mostrará mensajes de en donde guardará el archivo lógico del certificado y el modo de los plugins que están ejecutándose, si no hay errores continuará.

En el siguiente mensaje nos pide que ingresemos el dominio o dominios separados por una coma o un espacio, para cancelar presiona la tecla C.

Una vez ingresado el domino y/o los sub.dominios nos mostrara una clave para cada uno de ellos, estas claves deben de ser guardadas en dns de tipo text y nombrarlos según nos lo indique para cada uno. Por ejemplo, si se ingresaron los dominios: exasoluciones.com y www.exasoluciones.com se tendrán que agregar los siguientes dns en el panel de control del hosting:

Una vez generadas cada una de las claves y creados sus respectivos registros DNS, Certbot verificará que existan cada uno de ellos. Sí todo funciona correctamente te mostrará el mensaje de que se ha generado el certificado correctamente y te mostrara la ruta en donde ha guardado los archivos de dicho certificado.

Los archivos que nos interesan son:

  • fullchain.pem : Este archivo incluye la cadena cifrada del certificado.
  • privkey.pem : Este archivo incluye la llave privada del certificado.

Estos archivos son los que nos servirán para instalar el Certificado SSL a través del Panel de Control de tu Hosting Web.