Certificados SSL são essênciais para aplicações web. Sua utilização traz maior segurança e conforto para os usuários, além de dar mais credibilidade para o serviço que está sendo apresentado através da página.

Nesse post iremos aprender rapidamente como certificar uma aplicação web com Let's Encrypt, usando Nginx + Certbot.

Primeira Etapa: Instalações Necessárias

Para esse tutorial estaremos utilizando o subdomínio tutorial.esweb.com.br, o serviço Nginx como webserver para uma página estática, e também a ferramenta Certbot para gerar o certificado.

1 - Instalar o Nginx

# Exemplo Instalação Ubuntu 18.04
$ sudo apt update
$ sudo apt install nginx

# Exemplo Instalação Centos 7
$ sudo yum install epel-release -y
$ sudo yum install nginx -y

2 - Adicionar a ferramenta Certbot

# Exemplo Instalação Ubuntu 18.04
$ sudo apt install certbot python3-certbot-nginx

# Exemplo Instalação Centos 7
$ sudo yum install certbot-nginx

Segunda Etapa: Criar e Incluir Virtual Host

Criar o virtual host que será certificado utilizando o editor de texto VIM, ou o de sua preferência.

$ sudo mkdir -p /etc/nginx/vhosts/
$ sudo vim /etc/nginx/vhosts/exemplo.com.br
# Exemplo de conteúdo para /etc/nginx/vhosts/exemplo.com.br
server {
  listen 80;
  server_name exemplo.com.br;
  server_name www.exemplo.com.br;

  index index.html index.htm;

  # Diretorio raiz para site estático exemplo
  root /var/www/html;
}

Inclua o diretório recém criado nas configurações do Nginx editar o arquivo /etc/nginx/nginx.conf

# Adicionar a seguinte configuração no arquivo /etc/nginx/nginx.conf
http {
  # ...
  include /etc/nginx/vhosts/*; # Linha a ser incluída
}

Verifique se está tudo ok e reinicie o Nginx

$ sudo nginx -t
$ sudo nginx -s reload # Caso o primeiro comando for bem sucedido

Terceira Etapa: Gerar o Certificado

Nessa etapa iremos gerar o certificado para o virtual host criado.
Obs: Garanta que o virutal host está devidamente configurado e apontado para o servidor onde será gerado.

$ sudo certbot --nginx -d exemplo.com.br -d www.exemplo.com.br

Caso seja a primeira vez utilizando o certbot, será emitido uma mensagem para fornecer um e-mail e aceitar os termos de serviço.

Prosseguindo com a instalação, o certbot irá enviar uma mensagem de configuração do HTTPS para o domínio registrado:

Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Escolha a opção desejada e prossiga, e o certbot irá concluir a certificação do seu domínio

Quarta Etapa: Visualizar o Certificado

Após a conclusão do certificado, acesse através do seu navegador de preferência o site certificado utilizando https://, e verifique o cadeado de segurança ao lado da url do site.

Gabriel Hinz
Engenheiro DevOps

Gabriel faz parte da nossa equipe de sentinelas dedicados para transformar o mundo digital.

Instagram