30 julio, 2024

Let's Encrypt salvando la burrocracia

Con un vencimiento inminente de un certificado para un sitio y con toda una burrocracia para una compra, los especialistas deben dar una solución mágicacon el mínimo costo e  inmediata 😑

Ahí es donde Let's Encrypt viene a una salvación momentánea, acotando el riesgo en forma temporal ya que exijo un compromiso de fecha para la solución definitiva. Si, un certificado gratis y rápido

Let's Encrypt - Certificados SSL/TLS Gratuitos

 

Para generar un certificado válido se tiene dos opciones:

  1. Usar Certbot
  2. Usar Win-ACME (WACS)  [👀 solo funciona bajo Windows]
Como es algo temporal, no se requiere un bot/script de renovación automática, solo el certificado para entregarlo a los administradores para colocar en el webserver

Opción Certbot

Desde la terminal de Windows (es la que tenia a mano) ejecuto el certbot que ya tenia instalado, y FAIL , consultando la página observo:

Certbot has discontinued support for Windows as of February 2024

 
Por lo tanto avanzamos sobre la opción del infalible Linux, en la terminal ejecutamos con privilegios:


apt-get install certbot 
certbot certonly --manual --preferred-challenges http --agree-tos --rsa-key-size 4096 -d dominio.dominio

 

 

De los cuales los parámetros son:

certonly

Para obtener el certificado (ya que lo genero en un lugar distinto al server)

--manual

Para obtener el certificado instructivamente

--preferred-challenges http

Challenge (comprobación) a realizar la emisión. En este caso usamos http para crear un file en el server

--agree-tos    

Aceptar el ACME server's Subscriber Agreement, evito pregunta

--rsa-key-size   

Tamaño de la RSA Key, por default es 2048

-d

El dominio para el cual lo queremos emitir, su existen subdominios hay que especificarlos separandolos por comas

 
Al ejecutar el comando, me genera el nombre del file y su contenido para hacer la validación.
Al cargar el file en el webserver (carpeta /.well-known/acme-challenge), se puede realizar la validación y SUCCESS
Deja los certificados en /etc/letsencrypt/live/dominio.dominio/

De los que me interesa para cargar: fullchain.pem  y privkey.pem
Los nombres son los default ya que no lo especifique al generarlos
 
Ya se encuentran listos para alojarlos en el webserver y configurarlos
 
También se pueden hacer, para próximos post/actualizaciones:
  • Validación con un registro TXT del DNS 
  • Parámetros enhance, agrega mejoras de seguridad (por que no viene por default?)

Opción Win-ACME

Es un cliente compatible con todos los que usan protocolo ACME para la generación de certificados que funciona para Windows ... opción todavía no explorada ... deuda técnica para un próximo update


Y si quiero renovar el certificado?

Como se generó manualmente, para renovarlo es necesario crearlo nuevamente 😔 por lo que toca volver a ejecutar los comandos mencionados y cargar los certificados.

 

Un poco de teoría ....

Protocolo ACME

Como es que funciona la magia?

El Protocolo ACME (Automatic Certificate Management Environment) es una herramienta que permite a los sitios web obtengan certificados de seguridad de manera automatizada y sencilla. 

Lo genial de ACME es que automatiza todo este proceso, haciendo que obtener y renovar certificados de seguridad sea rápido y sin complicaciones. Una de las CA más conocidas que usa ACME es Let’s Encrypt, que ofrece certificados gratuitos para sitios web.

Funcionamiento:

  1. Solicitud de Certificado: El sitio web (o servidor) envía una solicitud a una Autoridad Certificadora (CA) utilizando el protocolo ACME, pidiendo un nuevo certificado.

  2. Verificación de Propiedad: La CA necesita asegurarse de que el servidor realmente pertenece al sitio web que está solicitando el certificado. Para ello, envía un desafío al servidor, como un mensaje secreto.

  3. Respuesta al Desafío: El servidor debe responder al desafío demostrando que tiene control sobre el dominio. Esto puede hacerse, por ejemplo, colocando un archivo especial en el sitio web o haciendo un cambio específico en la configuración del servidor.

  4. Emisión del Certificado: Una vez que la CA verifica que el servidor ha respondido correctamente al desafío, emite el certificado al servidor.

  5. Instalación del Certificado: El servidor recibe el certificado y lo instala, lo que permite que las conexiones entre el navegador y el sitio web sean cifradas (https://).


 

 

Referencias

  • https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment
  • https://www.win-acme.com/
  • https://certbot.eff.org/
  • https://letsencrypt.org/es/docs/
  • https://www.digitalocean.com/community/tutorials/how-to-use-certbot-standalone-mode-to-retrieve-let-s-encrypt-ssl-certificates-on-ubuntu-16-04

0 comments:

Publicar un comentario