Adicionando SSL no NGINX com o Let’s Encrypt

O Let’s Encrypt é uma forma fácil, automatizada e gratuita de se inserir SSL em uma aplicação web. A utilização do SSL é bem importante quando se há autenticação, tráfego de dados privados ou até mesmo para ser melhor colocado no ranking do Google. Neste artigo vou demonstrar como gerar e adicionar o SSL no

O Let’s Encrypt é uma forma fácil, automatizada e gratuita de se inserir SSL em uma aplicação web. A utilização do SSL é bem importante quando se há autenticação, tráfego de dados privados ou até mesmo para ser melhor colocado no ranking do Google.

Neste artigo vou demonstrar como gerar e adicionar o SSL no NGINX com a ferramenta Let’s Encrypt. Irei utilizar o sistema operacional Debian para executar os comandos, mas estes podem ser facilmente modificados para serem executados em qualquer distro.

Instalando o Let’s Encrypt:

Clone o projeto no github e redirecione para o caminho /opt/letsencrypt:

É necessário ter o git instalado, caso não tenha:

Preparando o NGINX para ser validado:

O Let’s Encrypt valida se o domínio realmente é seu, então para isso é necessário adicionar uma regra no seu site do NGINX. Adicione o location ^/.well-known no seu site (/etc/nginx/sites-enabled/yoursite), como por exemplo:

Este location será requisitado pelo Let’s Encrypt para confirmar sua identidade. Lembrando que você deve substituir o root e o server_name.

Após adicionar o well-known, reinicie o seu NGINX:

É bom lembrar que o seu domínio deve estar apontando para sua aplicação para obter sucesso com o SSL.

Gerando o SSL com o Let’s Encrypt:

Substitua no comando abaixo, o caminho /var/www/yoursite pelo diretório raiz do seu site no NGINX, e também o yourdomain.com.br e www.yourdomain.com.br pelo seu domínio:

Neste processo irá ser solicitado seu e-mail, para caso necessite da recuperação de seu certificado.

Adicionando o certificado em sua aplicação:

Após o certificado ser gerado com sucesso, altere novamente o seu arquivo de regras do seu site (/etc/nginx/sites-enabled/yoursite), adicionando mais um server, desta vez o de ssl:

Lembrando que você deve alterar o location / com as configurações específicas da sua aplicação web.

Reinicie novamente o seu NGINX:

Entre em seu domínio utilizando o https e veja se o processo ocorreu com sucesso.

Conferindo a qualidade do seu SSL:

Altere example.com pelo seu domínio:

https://www.ssllabs.com/ssltest/analyze.html?d=example.com

Melhorando a qualidade do seu certificado:

É importante validar as cifras utilizadas, limitar a versão do protocolo SSL, entre outras coisas. Para isso, recomendo a leitura do seguinte tópico na wiki da Mozilla, Server Side TLS. Existe também o Mozilla SSL Configuration Generator, um gerador de configuração SSL para diversos servidores de aplicação.

Renovando seu certificado com crontab:

O certificado gerado é válido por 3 meses, para facilitar a renovação, você pode criar um cronjob para fazer este trabalho:

Adicione no final do arquivo:

Concluindo:

Neste artigo foi demonstrando a geração do SSL para o NGINX, mas este mesmos passos podem ser facilmente executados em qualquer servidor de aplicação, com algumas modificações. Lembrando que existem outros comandos específicos da ferramenta Let’s Encrypt, como letsencrypt-apache que faz todo o trabalho pra você no caso do Apache, mas tentei demonstrar a forma genérica, que pode servir para outros servidores.


O certificado SSL também pode ser contratado na 1&1 ou Certisign.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *