Nginx: gerar um certificado Let's Encrypt com o Certbot

Depois de termos visto como instalar e configurar o Nginx como proxy inverso e reforçar a segurança com o Crowdsec, vou explicar-vos, neste tutorial, como gerar um certificado SSL Let’s Encrypt gratuitamente.

Recordo que o Let’s Encrypt é uma autoridade de certificação gratuita, que permite obter certificados SSL com uma validade de 3 meses.

Para o Windows, recomendo a utilização do Certify The Web para a geração de certificados Let’s Encrypt

Para este tutorial, utilizei um servidor com Ubuntu e o Nginx instalado, utilizado como proxy inverso.

Instalar o Certbot no Ubuntu

Para gerar certificados no Ubuntu (e no Linux em geral), utiliza-se o Certbot.

O Certbot é um programa que se encarrega de realizar as verificações de validação do domínio para obter o certificado SSL e configurar o servidor Web — mais precisamente, o virtualhost —, sendo compatível com vários servidores Web, incluindo o Apache, o Nginx…

O Certbot também se encarregará da renovação automática dos certificados SSL.

Primeiro passo: instalar o Certbot para o Nginx no servidor. Para tal, introduza o comando abaixo:

sudo apt install python3-certbot-nginx -y

O Certbot está instalado; vamos agora passar à geração de um certificado SSL para um virtualhost no Nginx.

Gerar um certificado Let’s Encrypt para o Nginx com o Certbot

Para ilustrar este tutorial, vou utilizar o virtualhost abaixo:

É importante, na configuração do virtualhost, indicar o parâmetro server_name.

Como se pode ver na configuração, o virtualhost está, de momento, configurado na porta 80.

Para iniciar o programa Certbot, utilize o comando abaixo:

sudo certbot

Na primeira execução, deve:

  • Indicar um endereço de e-mail
  • Aceitar o contrato do serviço
  • Indicar se pretende partilhar o endereço de e-mail.

A partir daí, eis como se procede quando se pretende gerar um certificado:

A lista de locais é apresentada; introduza o número do local e confirme.

Aguarde enquanto o certificado é solicitado…

Assim que o certificado for gerado, o assistente pergunta se pretende redirecionar http para https; no exemplo, escolho a opção 2.

É exibida uma mensagem de confirmação e recuperamos o controlo da consola.

Se voltarmos a verificar a configuração do virtualhost, podemos ver que a configuração HTTPS está a escutar na porta 443 e que o tráfego na porta 80 é redirecionado (301) para o site em HTTPS.

Renovação automática dos certificados SSL

Por predefinição, o Certbot renova automaticamente o certificado antes do seu vencimento e substitui-o.

Abaixo, pode ver-se a tarefa agendada (cron).

Romain Drouche
Romain Drouche
Arquiteto de Sistemas | MCSE: Infraestrutura Essencial
Especialista em infraestruturas de TI com mais de 15 anos de experiência na área. Atualmente, como Gestor de Projetos de Sistemas e Redes e especialista em Segurança de Sistemas de Informação (SSI), utilizo a minha expertise para garantir a fiabilidade e a segurança dos ambientes tecnológicos.

Deixe um comentário