Voy a obtener SSL para nginx a través de certbot
pero me encuentro con este error "Problema de DNS: NXDOMAIN buscando A para www.example.com - verifique que exista un registro de DNS para este dominio"
sin embargo, tengo dos registros A en cloudflare:
ejemplo.com ip www ip
¿Qué tengo que hacer?
Cuando Let's Encrypt Certbot intentó validar su dominio, no pudo encontrar la dirección IP (registro A) del dominio para que coincida si el certbot se ejecuta desde la ubicación IP.
Posible solución 1
Compruebe si el Cloudflare proxy está activado para el registro A. Si está encendido, apáguelo. Por lo general, esto se hace haciendo clic en el ícono de la nube naranja en la página DNS para el registro A.
Posible solución 2
Si ya está hecho y aún enfrenta errores, edite el campo TTL (Time To Live) para el registro A a 60 . El DNS de su dominio no se propaga y esto podría acelerar el proceso.
Posible solución 3
Si nada de lo anterior funciona, hay algún problema con el certbot o con la conexión del certbot al DNS de su dominio. Agregue --debug-challenges mientras ejecuta el comando para emitir SSL. Esto podría darte más información.
Posible solución 4
Un último recurso es probar el modo manual. Puede verificar la propiedad del dominio a través del desafío http en lugar del modo dns . Siga las instrucciones aquí en la documentación de Certbot.
Sin embargo, es posible que deba asociar el certificado una vez emitido a su configuración de nginx. Encuentre la siguiente configuración para su referencia. Puede usar esto fácilmente para que su servicio / sitio web esté en funcionamiento después de obtener el certificado.
server { server_name example.com; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } listen [::]:443 ssl ipv6only=on; # managed by Certbot listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = example.com) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; listen [::]:80; server_name example.com; return 404; # managed by Certbot }