2 minute read

En mi artículo anterior escribí sobre los certificados SSL, un requisito imprescindible para certificar la propiedad de cualquier sitio web . Hoy voy a ocuparme de la forma de obtener un certificado gratuito para nuestra propia página de Internet. Este método solo es válido para alojamientos web tipo Cloud o Virtual Private Server, es decir que permitan acceso remoto al servidor.

Aquellos alojamientos web más económicos que utilicen el panel de control Cpanel, aunque no permitan el acceso mediante SSH, incorporan un mecanismo para obtener el certificado. Por otra parte, los diferentes proveedores de alojamiento web suelen incorporar algún tipo de opción gratuita de certificados.

Let’s Encrypt y Certbot

Let’s Encrypt es una autoridad de certificación que permite obtener de forma gratuita y automatizada los certificados necesarios para que un sitio opere con el protocolo HTTPS. Me refiero al nivel básico que es la certificación de la propiedad de un dominio.

**Las características de los certificados de Let’s Encrypt son: **

  • Libres: Cualquier persona titular de un dominio de Internet puede obtener un certificado sin costo alguno.
  • Automáticos: Se usan herramientas de software corriendo en el servidor donde se aloja el dominio para obtener, configurar y renovar el certificado.
  • Seguros: Los certificados de Let’s Encrypt implementan las versiones más avanzadas del protocolo TLS.
  • Transparentes: El registro de los certificados emitidos y revocados está disponible para todo el público.
  • Abiertos: Los protocolos de generación y renovación son públicos y cualquiera puede adoptarlos y adaptarlos.
  • Cooperativos: Todo el proyecto es el resultado de un esfuerzo comunitario y no está controlado por ninguna organización.

Funcionamiento

Let’s Encrypt identifica la propiedad de un dominio mediante el mecanismo de llaves públicas generadas por software instalado en el servidor adonde apunta el dominio. El proceso de obtención del certificado comienza cuando el software le pregunta a Let’s Encrypt que tiene que hacer para verificar la propiedad.

Esto puede hacerse de dos formas:

  • Agregando una entrada a los registros DNS.
  • Agregando archivos en una carpeta específica en el servidor.

También envía un “nonce” que el software debe firmar con su llaves privada, lo que es otra forma de demostrar la propiedad.

Una vez completado el reto y firmado el “nonce” se conecta a la autoridad de certificación para iniciar el proceso de validación.

Si la firma sobre el nonce es válida, y uno de los retos se cumplió, entonces el agente identificado por su llave pública está autorizado a realizar la gestión de certificados para el dominio.

La solicitud se inicia con la emisión de una Solicitud Firmada de Certificado (CSR por sus siglas en inglés) incluyendo una determinada llave pública. La solicitud incluye la llave privada correspondiente a la llave pública y la llave que identifica al dominio para que el agente de certificación verifique la legitimidad. **Si todo está en orden, el certificador emite el certificado con la llave pública y lo devuelve al software. **

En el caso de una revocación se cumple el mismo procedimiento, solo que se envía la información de manera pública para que los navegadores no confíen en el certificado

Una de las mejores opciones para la gestión automática de certificados Let’s Encrypt es Certbot. Una herramienta creada por una entidad sin fines de lucro llamada Electronic Frontier Foundation. En el próximo artículo voy a explicar la forma de instalarlo y usarlo en distintas distribuciones Linux