Editor – A postagem do blog detalhando o procedimento original para usar o Let’s Encrypt com NGINX (de fevereiro de 2016) redireciona para cá. As instruções nessa postagem estão obsoletas.
Esta postagem foi atualizada para eliminar a dependência do certbot‑auto
, que a Electronic Frontier Federation (EFF) tornou obsoleto no Certbot 1.10.0 para Debian e Ubuntu e no Certbot 1.11.0 para todos os outros sistemas operacionais. Para obter detalhes adicionais e métodos alternativos de instalação, consulte esta postagem da EFF .
Veja também nossa postagem no blog do nginx.conf 2015, na qual Peter Eckersley e Yan Zhu da Electronic Frontier Foundation apresentam a então nova autoridade de certificação Let's Encrypt .
É bem sabido que a criptografia SSL/TLS do seu site leva a classificações de pesquisa mais altas e melhor segurança para seus usuários. No entanto, há uma série de barreiras que impedem os proprietários de sites de adotar o SSL.
Duas das maiores barreiras são o custo e os processos manuais envolvidos na obtenção de um certificado. Mas agora, com o Let's Encrypt , elas não são mais uma preocupação. O Let's Encrypt disponibiliza gratuitamente a criptografia SSL/TLS para todos.
Let’s Encrypt é uma autoridade de certificação (CA) gratuita, automatizada e aberta. Sim, está certo: Certificados SSL/TLS gratuitos. Os certificados emitidos pela Let’s Encrypt são confiáveis pela maioria dos navegadores hoje, incluindo navegadores mais antigos, como o Internet Explorer no Windows XP SP3. Além disso, o Let’s Encrypt automatiza totalmente a emissão e a renovação de certificados.
Nesta postagem do blog, abordamos como usar o cliente Let’s Encrypt para gerar certificados e como configurar automaticamente o NGINX Open Source e o NGINX Plus para usá-los.
Antes de emitir um certificado, o Let’s Encrypt valida a propriedade do seu domínio. O cliente Let’s Encrypt, em execução no seu host, cria um arquivo temporário (um token) com as informações necessárias. O servidor de validação Let’s Encrypt então faz uma solicitação HTTP para recuperar o arquivo e valida o token, o que verifica se o registro DNS do seu domínio é resolvido para o servidor que executa o cliente Let’s Encrypt.
Antes de começar com o Let’s Encrypt, você precisa:
Agora você pode configurar facilmente o Let's Encrypt com o NGINX Open Source ou o NGINX Plus (para facilitar a leitura, de agora em diante nos referiremos simplesmente ao NGINX ).
Observação : Testamos o procedimento descrito nesta postagem do blog no Ubuntu 16.04 (Xenial).
Primeiro, baixe o cliente Let's Encrypt, certbot
.
Conforme mencionado acima, testamos as instruções no Ubuntu 16.04, e estes são os comandos apropriados para essa plataforma:
$ apt-get update $ sudo apt-get install certbot $ apt-get install python-certbot-nginx
Com o Ubuntu 18.04 e posterior, substitua a versão Python 3:
$ apt-get update $ sudo apt-get install certbot $ apt-get install python3-certbot-nginx
O certbot
pode configurar automaticamente o NGINX para SSL/TLS. Ele procura e modifica o bloco do servidor
na sua configuração NGINX que contém uma diretiva server_name
com o nome de domínio para o qual você está solicitando um certificado. No nosso exemplo, o domínio é www.example.com .
Supondo que você esteja começando com uma nova instalação do NGINX, use um editor de texto para criar um arquivo no diretório /etc/nginx/conf.d chamado domain‑name .conf (portanto, em nosso exemplo, www.example.com.conf ).
Especifique seu nome de domínio (e variantes, se houver) com a diretiva server_name
:
servidor { ouvir 80 default_server;
ouvir [::]:80 default_server;
raiz /var/www/html;
nome_do_servidor exemplo.com www.exemplo.com;
}
Salve o arquivo, execute este comando para verificar a sintaxe da sua configuração e reinicie o NGINX:
$ nginx -t && nginx -s recarregar
O plug-in NGINX para certbot
cuida da reconfiguração do NGINX e do recarregamento de sua configuração sempre que necessário.
Execute o seguinte comando para gerar certificados com o plug-in NGINX:
$ sudo certbot --nginx -d exemplo.com -d www.example.com
Responda às solicitações do certbot
para configurar suas configurações de HTTPS, o que envolve inserir seu endereço de e-mail e concordar com os termos de serviço do Let's Encrypt.
Quando a geração do certificado é concluída, o NGINX é recarregado com as novas configurações. O certbot
gera uma mensagem indicando que a geração do certificado foi bem-sucedida e especificando o local do certificado no seu servidor.
Parabéns! Você habilitou com sucesso https://example.com e https://www.example.com
-------------------------------------------------------------------------------------
NOTAS IMPORTANTES:
Parabéns! Seu certificado e cadeia foram salvos em:
/etc/letsencrypt/live/example.com/fullchain.pem
Seu arquivo de chave foi salvo em:
/etc/letsencrypt/live/example.com//privkey.pem
Seu certificado irá expirar em 2017-12-12.
Observação : Os certificados Let's Encrypt expiram após 90 dias (em 12/12/2017 no exemplo). Para obter informações sobre a renovação automática de certificados, consulte Renovação automática de certificados Let's Encrypt abaixo.
Se você olhar para o nome de domínio .conf , verá que o certbot
o modificou:
server { listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name example.com www.example.com;
listen 443 ssl; # gerenciado pelo Certbot
# certificado RSA
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # gerenciado pelo Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # gerenciado pelo Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # gerenciado pelo Certbot
# redirecionar tráfego não https para https
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # gerenciado pelo Certbot
}
Os certificados Let's Encrypt expiram após 90 dias. Recomendamos que você renove seus certificados automaticamente. Aqui, adicionamos uma tarefa cron
a um arquivo crontab existente para fazer isso.
Abra o arquivo crontab .
$ crontab -e
Adicione o comando certbot
para ser executado diariamente. Neste exemplo, executamos o comando todos os dias ao meio-dia. O comando verifica se o certificado no servidor irá expirar nos próximos 30 dias e o renova em caso afirmativo. A diretiva --quiet
informa ao certbot
para não gerar saída.
0 12 * * * /usr/bin/certbot renew --quiet
Salve e feche o arquivo. Todos os certificados instalados serão renovados e recarregados automaticamente.
Instalamos o agente Let’s Encrypt para gerar certificados SSL/TLS para um nome de domínio registrado. Configuramos o NGINX para usar os certificados e configurar renovações automáticas de certificados. Com os certificados Let’s Encrypt para NGINX e NGINX Plus, você pode ter um site simples e seguro instalado e funcionando em minutos.
Para experimentar o Let's Encrypt com NGINX Plus, comece hoje mesmo seu teste gratuito de 30 dias ou entre em contato conosco para discutir seus casos de uso .
Protegendo o tráfego HTTP para servidores upstream
Protegendo o tráfego TCP para servidores upstream
Terminação NGINX SSL
"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."