Let's Encrypt ha anunciado que tienen:
Activado el soporte para el desafío DNS de ACME
¿Cómo hago para ./letsencrypt-auto
generar un nuevo certificado usando la validación del dominio de desafío DNS?
EDITAR
Quiero decir: ¿Cómo evito el http/https
enlace de puertos, utilizando la función recientemente anunciada (2015-01-20) que le permite probar la propiedad del dominio agregando un registro TXT específico en la zona DNS del dominio de destino?
lets-encrypt
Pierre Prinetti
fuente
fuente
Respuestas:
Actualmente es posible realizar una validación de DNS también con el cliente certbot LetsEncrypt en el modo manual. La automatización también es posible (ver más abajo).
Complemento manual
Puede realizar una verificación manual, con el complemento manual.
Luego, Certbot le proporcionará instrucciones para actualizar manualmente un registro TXT para el dominio a fin de continuar con la validación.
Una vez que haya actualizado el registro DNS, presione Entrar, certbot continuará y si LetsEncrypt CA verifica el desafío, el certificado se emite normalmente.
También puede usar un comando con más opciones para minimizar la interactividad y responder preguntas de certbot. Tenga en cuenta que el complemento manual aún no admite el modo no interactivo.
La renovación no funciona con el complemento manual, ya que se ejecuta en modo no interactivo. Más información en la documentación oficial de Certbot .
Actualización: ganchos manuales
En la nueva versión Certbot puede utilizar ganchos , por ejemplo
--manual-auth-hook
,--manual-cleanup-hook
. Los ganchos son scripts externos ejecutados por Certbot para realizar la tarea.La información se pasa en variables de entorno, por ejemplo, dominio para validar, token de desafío. Vars:
CERTBOT_DOMAIN
,CERTBOT_VALIDATION
,CERTBOT_TOKEN
.Puede escribir su propio controlador o utilizar los existentes, hay muchos disponibles, por ejemplo, para Cloudflare DNS.
Más información sobre la documentación oficial de ganchos Certbot
Automatización, Renovación, Scripting
Si desea automatizar la validación de los desafíos de DNS, actualmente no es posible con vanila certbot.Actualización: es posible cierta automatización con los ganchos Certbot.Por lo tanto, creamos un complemento simple que admite secuencias de comandos con la automatización de DNS. Está disponible como certbot-external-auth .
Es compatible con los métodos de validación DNS, HTTP, TLS-SNI. Puede usarlo en el modo de controlador o en el modo de salida JSON.
Modo de controlador
En el modo de controlador, el complemento certbot + llama a enlaces externos (un programa, script de shell, python, ...) para realizar la validación e instalación. En la práctica, escribe un script simple de controlador / shell que obtiene argumentos de entrada: dominio, token y realiza el cambio en DNS. Cuando finaliza el controlador, certbot continúa con la validación como de costumbre.
Esto le brinda una flexibilidad adicional, la renovación también es posible.
El modo de controlador también es compatible con los enlaces DNS deshidratados (anteriormente letsencrypt.sh). Ya hay muchos enlaces DNS para proveedores comunes (por ejemplo, CloudFlare, GoDaddy, AWS). En el repositorio hay un archivo README con ejemplos extensos y manejadores de ejemplos.
Ejemplo con gancho DNS deshidratado :
Modo JSON
Otro modo de complemento es el modo JSON. Produce un objeto JSON por línea. Esto permite una integración más complicada, por ejemplo, Ansible o algún administrador de implementación llama a certbot. La comunicación se realiza a través de STDOUT y STDIN. Cerbot produce objetos JSON con datos para realizar la validación, por ejemplo,
Una vez que se actualiza el DNS, la persona que llama envía un carácter de nueva línea a STDIN del certbot para indicar que puede continuar con la validación.
Esto permite la automatización y la administración de certificados desde el servidor de administración central. Para la instalación, puede implementar certificados a través de SSH.
Para obtener más información, consulte el archivo Léame y los ejemplos en certbot-external-auth GitHub.
EDITAR: También hay una nueva publicación de blog que describe el problema de validación de DNS y el uso del complemento.
EDITAR: actualmente trabajamos en la validación de 2 pasos de Ansible, saldremos pronto.
fuente
certbot certonly --preferred-challenges dns -d example.com
) para la solicitud inicial. Después de probar y cambiar el registro A, use el método webroot común (certbot certonly webroot -d example.com -w /path/to/webroot
) usando exactamente los mismos nombres de dominio que antes. Si se hace correctamente, certbot reconocerá el certificado / configuración existente y actualizará la configuración de renovación, por lo que el certificado se renovará automáticamente en el futuro.Pude usar el
dehydrated
cliente para obtener un certificado mediante la validación de DNS.https://github.com/lukas2511/dehydrated
Deberá usar el enlace de validación de DNS correcto para su dominio, pero hay algunas opciones disponibles como ejemplos:
https://github.com/lukas2511/dehydrated/wiki/Examples-for-DNS-01-hooks
fuente
route53.rb
script de enlace.A partir de hoy, el cliente oficial no es compatible con el tipo de desafío DNS-01 (todavía).
Ver https://community.letsencrypt.org/t/status-of-official-letsencrypt-clients-dns-01-challenge-support/9427
Puedes seguir el progreso en este PR . Alternativamente, hay algunos clientes que ya lo admiten.
fuente
Escribí un script de enlace para el cliente letsencrypt.sh que le permite usar la verificación de DNS de Lets Encrypt para proveedores de DNS que no proporcionan una API para usar (también conocida como entrada y verificación manual requeridas).
Puede consultarlo aquí: https://github.com/jbjonesjr/letsencrypt-manual-hook
fuente
Como se mencionó en las respuestas anteriores, puede verificar fácilmente un dominio por DNS con esto:
apt-get install -y git ruby letsencrypt git clone https://github.com/lukas2511/dehydrated.git git clone https://github.com/jbjonesjr/letsencrypt-manual-hook.git dehydrated/hooks/manual
./dehydrated/dehydrated -c -t dns-01 -d www.example.com -k ./dehydrated/hooks /manual/manual_hook.rb
fuente
Después de probar diferentes combinaciones, esto es lo que funcionó para mí usando repositorios git deshidratados y letsencrypt-manual-hook . Si los pasos a continuación funcionan para usted, no olvide marcar estos repositorios
NOTA: Esto se suma a las respuestas de panticz.de y alexcline
Obtendrá un hash (después de ejecutar el comando anterior), cree un registro TXT en su DNS. Asegúrese de que funciona ejecutando el siguiente comando o GSuite Toolbox
Ahora, presione enter en el indicador. Esto no funcionó para mí, aunque se actualizó el registro TXT. Tuve que presionar Ctrl + C y ejecutar el comando nuevamente.
Ahora, sus certificados públicos y privados están presentes aquí.
Para renovar (el tiempo mínimo de espera es de 30 días), solo el mismo comando nuevamente.
fuente
Hugo Landau escribió un cliente ACME en Go ( https://github.com/hlandau/acme ) que admite desafíos de DNS (con el protocolo nsupdate de BIND). Me ha funcionado perfectamente durante al menos 18 meses.
fuente