Integrando Certbot com DNS da Cloudflare

Certificados do tipo WILDCARD são um pouco diferentes de serem emitidos via certbot. Uma vez que você tenha emitido usando os parâmetros –manual –preferred-challenges dns, em toda a renovação você precisa atualizar o conteúdo de um entrada TXT em sua zona de DNS.

Isso pode ser complicado de automatizar, dependendo da tecnologia escolhida ou de seu provedor de DNS, se estiver usando um SaaS.

Aqui vamos mostrar como automatizar a atualização da entrada TXT de DNS para um domínio wildcard hospedado no provedor CloudFlare.

PreReqs

Ambiente

Dependências

Se você ainda não criou sua entrada wildcard, veja o post abaixo

Instalando plugin cloudflare

yum install python2-certbot-dns-cloudflare-1.3.0-2.el7.noarch

Criando arquivo de configuração cloudflare

Vamos criar o seguinte arquivo

vim /etc/letsencrypt/cloudflareapi.cfg

Insira o conteúdo abaixo, ajustando seu e-mail e o token

dns_cloudflare_email = guto@gutocarvalho.net
dns_cloudflare_api_key = LKJHliugoIULkjKUHIOLhuLIHU

O token você vai pegar na página da cloudflare.

Renovando o certificado existente

certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini -d gutocarvalho.net,*.gutocarvalho.net --preferred-challenges dns-01

Criando entrada no cron

Edite o cront do root

crontab -e

E insira a linha abaixo ajustando minuto, hora e domínio.

15 3 * * * certbot certonly --noninteractive --cert-name gutocarvalho.net --dns-cloudflare --dns-cloudflare-credentials /etc/letsencrypt/cloudflareapi.cfg --server https://acme-v02.api.letsencrypt.org/directory -d gutocarvalho.net,*.gutocarvalho.net

Pronto, a renovação de certificados está configurada, o setup agora está completo.