Base de conocimientos
1 000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Renovar un certificado "comodín" mediante el desafío DNS
Esta guía explica cómo generar y renovar automáticamente un certificado wildcard mediante un proceso de verificación DNS utilizando Certbot y el complemento dns-infomaniak.
1. Instalación de las herramientas
Instale certbot y su extensión (❓: ayuda). Seleccione la pestaña Wildcard, esto evitará el error plugin does not appear to be installed.
2. Preparación de la API de Infomaniak
Para automatizar el proceso, genere un token de API (❓: ayuda). Busque "dns" y marque obligatoriamente los dos ámbitos dns:read y dns:write:
Estos permisos son necesarios para que Certbot pueda leer sus zonas DNS y crear/eliminar el registro TXT de validación.
3. Generación inicial manual y validación
Inicie la primera generación del certificado:
certbot certonly --manual \
-d *.example.com \
--preferred-challenges dns-01 \
--server {{URL_3}}A continuación, acceda al Panel de control y cree el registro TXT solicitado (Nombre: _acme-challenge, Valor: el proporcionado por Certbot) para demostrar que es propietario del dominio (❓: ayuda).
4. Scripts de automatización
Cree el script de autenticación /root/infomaniak-auth.sh:
#!/bin/bash
# API Token for Infomaniak
INFOMANIAK_API_TOKEN="YOUR_API_TOKEN_HERE"
# Update DNS record via Infomaniak API plugin
/usr/bin/certbot \
--authenticator dns-infomaniak \
--server {{URL_6}} \
-d "$CERTBOT_DOMAIN" \
--agree-tosCree el script de limpieza /root/infomaniak-clean.sh:
#!/bin/bash
# Optional: Cleanup operations after challenge
exit 0Haga que estos dos scripts sean ejecutables:
chmod +x /root/infomaniak-auth.sh /root/infomaniak-clean.sh
5. Configuración de la renovación automática
Edite o cree el archivo de configuración /etc/letsencrypt/renewal/example.com.conf:
cert = /etc/letsencrypt/live/example.com/cert.pem
privkey = /etc/letsencrypt/live/example.com/privkey.pem
chain = /etc/letsencrypt/live/example.com/chain.pem
fullchain = /etc/letsencrypt/live/example.com/fullchain.pem
[renewalparams]
authenticator = manual
manual_auth_hook = /root/infomaniak-auth.sh
manual_cleanup_hook = /root/infomaniak-clean.sh
server = {{URL_7}}
pref_challs = dns-01
account = YOUR_ACCOUNT_ID
key_type = rsa
6. Prueba y automatización (Cron)
Compruebe que todo funciona correctamente con una simulación de renovación:
certbot renew --dry-runSi la prueba tiene éxito, añada esta tarea Cron para automatizar la renovación (aquí, una verificación cada 30 días):
0 0 */30 * * /usr/bin/certbot renew --quiet --config /etc/letsencrypt/renewal/example.com.confEnlace a esta FAQ: https://faq.infomaniak.com/1708
¿Le ha sido útil esta FAQ?