Saiba como validar um certificado SSL Let’s Encrypt para um site ativo na Cloudflare.
Visão geral
Este guia descreve detalhes adicionais sobre como usar o método Webroot para verificação no cliente oficial do Let’s Encrypt descrito na documentação desse link: https://letsencrypt.readthedocs.org/en/Latest/using.html#webroot
Observe que o método padrão utilizado para autenticação do ACME pelo cliente do Let’s Encrypt é o DVSNI. O método falhará para um domínio habilitado para a Cloudflare, já que concluímos o SSL (TLS) na nossa borda e o servidor ACME nunca verá o certificado que o cliente apresenta na origem. O uso de métodos alternativos de validação do ACME como DNS ou HTTP será concluído com sucesso quando a Cloudflare estiver habilitada.
Validação de HTTP
Se você estiver configurando o Let’s Encrypt pela primeira vez para um site já ativo na Cloudflare, tudo o que é preciso fazer para verificar e obter seu certificado e seu par de chaves privadas com sucesso é usar o método Webroot para a verificação.
- Baixe o cliente do Let’s Encrypt e alterne para o diretório de download:
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt/
- Execute o script de instalação automática:
./letsencrypt-auto
- Usando o cliente
letsencrypt
com o comandocertonly
e o sinalizador--webroot
é possível verificar e obter o par cert/key usando a verificação de HTTP. Um exemplo de comando pode se parecer com o seguinte:/root/.local/share/letsencrypt/bin/letsencrypt certonly --webroot --webroot-path /usr/share/nginx/html/ --renew-by-default --email email@host.tld --text --agree-tos -d exemplo.tld -d www.exemplo.tld
no qual- --webroot-path
- é o diretório no qual o site está localizado no seu servidor (no exemplo, usando nginx);
- --renew-by-default
- seleciona a renovação por padrão quando os domínios são um superconjunto de um certificado obtido anteriormente;
- é o e-mail de contato da recuperação e utilizado no cadastramento;
- --text
- exibe o texto do resultado
- --agree-tos
- dá o aceite ao Contrato de Assinatura do Let’s Encrypt
- -d
- especifica os hostnames a serem adicionados ao SAN.
- A conclusão bem-sucedida desse método de verificação exibirá um texto parecido com o seguinte:
Parabéns! Seu certificado e sua cadeia foram salvos em /etc/letsencrypt/live/exemplo.tld/fullchain.pem. Seu certificado expirará em 2016-03-03. Para obter uma nova versão do certificado no futuro, basta executar o Let’s Encrypt novamente.
- Observe que tanto o certificado quanto a chave serão salvos
/etc/letsencrypt/live/exemplo.tld/
. Após ambos terem sido obtidos, você precisará atualizar seu host virtual manualmente para que passe a utilizar esse par chave/cert.
Certifique-se de verificar as Page Rules para o domínio no painel da Cloudflare e confirme que não existe nenhuma que possa resultar no redirecionamento de uma solicitação da URL de validação ou que a torne acessível somente em HTTPS.
Renovação
Quando chegar a hora da renovação, o comando letsencrypt renew
deve permitir que o certificado seja renovado com sucesso sem qualquer alteração na configuração da Cloudflare, desde que:
- O arquivo .conf utilizado pelo cliente letsencrypt para a renovação tenha um
authenticator = webroot
especificado. - O URL de validação seja acessível em HTTP.
- Não existam redirecionamentos aplicados ao URL em questão.
Alternativamente, a repetição das etapas acima também emitirá um novo certificado.