1. Registrarse en freenom.com
  2. Crear el dominio example.ml (Services -> Register a New Domain -> ...)
  3. Ir a AWS Route53 -> Create hosted zone:
    • Domain name: example.ml
  4. Copiamos los valores ns-* de la columna Value/Route traffic to
  5. En freenom.com seleccionamos nuestro dominio y vamos a Manage Tools -> Nameserver
  6. Seleccionamos Use custom nameservers (enter below) y rellenamos los campos Nameserver con los valores ns-* anteriormente copiados
  7. En dnschecker.org/#NS podemos validar el resultado pasados unos minutos
  8. Solicitar el certificado a letsencrypt:
    • certbot certonly --manual --preferred-challenges=dns --email your@email-address.com --agree-tos --config-dir ./config --logs-dir ./logs --work-dir ./workdir -d example.ml -d *.example.ml
    • Esto imprimirá una regla DNS que debemos crear
  9. Volvemos a AWS Route53 y pulsamos en Create record:
    • Name Record: _acme-challenge
    • Record type: TXT
    • Value: dato proporcionado en el paso anterior (cadena alfanumerica)
  10. Vamos a AWS Certificate Manager (en zona us-east-1 para poder usarlo en CloudFront)y pulsamos en Import a certificate:
    • Certificate body = contenido de config/live/example.ml/cert.pem
    • Certificate private key = contenido de config/live/example.ml/privkey.pem
    • Certificate chain = contenido de config/live/example.ml/chain.pem
  11. Vamos a CloudFront y editamos la distribución:
    • Alternate Domain Names (CNAMEs) = example.ml
    • SSL Certificate -> Custom SSL Certificate: seleccionamos el certificado anteriormente importado
  12. Volvemos a AWS Route53 y seleccionamos la zona creada anteriormente
  13. Pulsamos en Create record:
    • Marcar el check Alias
    • Routing policy = Simple routing
    • Record type = A – Routes traffic to an IPv4 address and some AWS resources
    • Route traffic to = Alias to CloudFront distribution
    • Region = US East (N. Virginia)
    • CloudFront = seleccionamos nuestro CloudFront

Bonus: Si estas fuera de USA y freenom.com falla siempre en el último del paso del registro de dominio prueba a cambiar la dirección de tu perfil de usuario por una de USA y acceder a traves de VPN con una ip de USA.

Fuentes: itnext.io, medium.com/200-response, medium.com/analytics-vidhya, reddit.com/r/freenom