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 necessárias
O plugin DNS da Infomaniak não está incluído por padrão. Para evitar o erro plugin does not appear to be installed, instale o certbot e sua extensão seguindo as instruções oficiais.
Certifique-se de selecionar a guia Wildcard no site do Certbot após escolher o seu sistema.
2. Geração manual inicial
Execute este comando para iniciar a primeira geração do certificado:
certbot certonly --manual \
-d *.example.com \
--preferred-challenges dns-01 \
--server {{URL_1}}
3. Validação do desafio DNS (Registro TXT)
Para comprovar que você é o proprietário do domínio, acesse o seu Painel de Controle Infomaniak e crie o seguinte registro TXT:
- Nome:
_acme-challenge - Valor: (o valor fornecido pelo comando Certbot)
4. Preparação da API Infomaniak
Para automatizar o processo, gere um token de API com o escopo domain na sua interface de gestão. Este token permitirá que o script atualize os seus DNS automaticamente.
5. Script de autenticação (infomaniak-auth.sh)
Crie o arquivo /root/infomaniak-auth.sh. Este script será chamado pelo Certbot durante a renovação:
#!/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_5}} \
-d "$CERTBOT_DOMAIN" \
--agree-tosTorne o script executável:
chmod +x /root/infomaniak-auth.sh
6. Script de limpeza (infomaniak-clean.sh)
Crie o arquivo /root/infomaniak-clean.sh para finalizar o procedimento:
#!/bin/bash
# Optional: Cleanup operations after challenge
exit 0Torne o script executável:
chmod +x /root/infomaniak-clean.sh
7. Configuração da renovação automática
Edite ou crie o seguinte 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_6}}
pref_challs = dns-01
account = YOUR_ACCOUNT_ID
key_type = rsa
8. Teste e Automatização (Cron)
Antes de automatizar, verifique se tudo funciona corretamente com uma simulação:
certbot renew --dry-runSe o teste for bem-sucedido, adicione esta tarefa Cron para verificar a renovação a cada X dias:
0 0 */30 * * /usr/bin/certbot renew --quiet --config /etc/letsencrypt/renewal/example.com.confModifique os 30 dias acima de acordo com a frequência desejada. O cron utilizará automaticamente:
- o arquivo
domain.tld.conf - o script de autenticação
infomaniak-auth.sh - o plugin
dns-infomaniak
Link para esta FAQ: https://faq.infomaniak.com/1708
Esta seção de perguntas frequentes foi útil?