Base de conhecimento
1000 perguntas frequentes, 500 tutoriais e vídeos explicativos. Aqui, você encontra apenas soluções!
Renovar um certificado "wildcard" por meio de um desafio DNS
Este guia explica como gerar e renovar automaticamente um certificado wildcard através de um desafio DNS, utilizando o Certbot e o plugin dns-infomaniak.
1. Instalação das ferramentas
Instale o certbot e sua extensão (❓: ajuda). Selecione a guia Wildcard, isso evitará o erro plugin does not appear to be installed.
2. Preparação da API Infomaniak
Para automatizar o processo, gere um token de API (❓: ajuda). Pesquise por "dns" e marque obrigatoriamente os dois escopos dns:read e dns:write:
Estas permissões são necessárias para que o Certbot possa ler as suas zonas DNS e criar/eliminar o registo TXT de validação.
3. Geração manual inicial e validação
Inicie a primeira geração do certificado:
certbot certonly --manual \
-d *.example.com \
--preferred-challenges dns-01 \
--server {{URL_3}}Em seguida, acesse o Painel de Controle e crie o registro TXT solicitado (Nome: _acme-challenge, Valor: o valor fornecido pelo Certbot) para comprovar que você é o proprietário do domínio (❓: ajuda).
4. Scripts de automação
Crie o script de autenticação /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-tosCrie o script de limpeza /root/infomaniak-clean.sh:
#!/bin/bash
# Optional: Cleanup operations after challenge
exit 0Torne estes dois scripts executáveis:
chmod +x /root/infomaniak-auth.sh /root/infomaniak-clean.sh
5. Configuração da renovação automática
Edite ou crie o arquivo de configuração /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. Teste e Automatização (Cron)
Verifique se tudo está funcionando corretamente com uma simulação de renovação:
certbot renew --dry-runSe o teste for bem-sucedido, adicione esta tarefa Cron para automatizar a renovação (aqui, uma verificação a cada 30 dias):
0 0 */30 * * /usr/bin/certbot renew --quiet --config /etc/letsencrypt/renewal/example.com.confLink para esta FAQ: https://faq.infomaniak.com/1708
Esta seção de perguntas frequentes foi útil?