Pesquisa de site

Como proteger o Nginx com Let's Encrypt no CentOS 8


Fundado em abril de 2016 pela Electronic Frontier Foundation (EFF), o Let’s Encrypt é um certificado digital gratuito e automatizado que fornece criptografia TLS para sites sem nenhum custo.

O objetivo do certificado Let’s Encrypt é automatizar a validação, criação, assinatura e renovação automática do certificado de segurança. Este certificado permite conexões criptografadas a servidores web usando o protocolo HTTPS de maneira simples, descomplicada e sem complexidades. O certificado é válido por apenas 90 dias, após os quais a renovação automática pode ser ativada.

Leitura recomendada:Como proteger o Apache com o certificado SSL Let’s Encrypt no CentOS 8

Neste artigo, demonstraremos como você pode instalar o Let's Encrypt para obter um certificado SSL gratuito para proteger o servidor web Nginx no CentOS 8 ( as mesmas instruções também funcionam no RHEL 8). Também explicaremos como renovar seu certificado SSL automaticamente.

Pré-requisitos

Antes de prosseguirmos, certifique-se de que você tenha o seguinte sob controle.

1. Um Nome de domínio totalmente qualificado (FQDN) apontando para um endereço IP dedicado do servidor web. Isso precisa ser configurado na área do cliente do seu provedor de hospedagem DNS. Para este tutorial, estamos usando o nome de domínio linuxtechwhiz que aponta para o endereço IP 34.70.245.117.

2. Você também pode confirmar isso executando uma pesquisa direta usando o comando dig conforme mostrado.

dig linuxtechwhiz.info

3. Nginx instalado e em execução no servidor web. Você pode confirmar isso fazendo login no terminal e executando o comando abaixo. Se o Nginx não estiver instalado, siga nosso artigo para instalar o Nginx no CentOS 8.

sudo systemctl status nginx

4. Você também pode verificar visitando o URL do servidor web em um navegador web.

http://server-IP-or-hostname

Pela URL, podemos ver claramente que o site não é seguro e, portanto, não é criptografado. Isso implica que quaisquer solicitações feitas ao servidor web podem ser interceptadas, incluindo informações críticas e confidenciais, como nomes de usuário, senhas, números de segurança social e informações de cartão de crédito, para mencionar alguns.

Agora vamos colocar a mão na massa e instalar o Let’s Encrypt.

Etapa 1. Instale o Certbot no CentOS 8

Para instalar o certificado Let’s Encrypt, primeiro você precisa ter o certbot instalado. Este é um cliente extensível que busca um certificado de segurança do Let’s Encrypt Authority e permite automatizar a validação e configuração do certificado para uso pelo servidor web.

Baixe o certbot usando o comando curl.

sudo curl -O https://dl.eff.org/certbot-auto

Em seguida, mova o certificado para o diretório /usr/local/bin.

sudo mv certbot-auto /usr/local/bin/certbot-auto

Em seguida, atribua permissão de arquivo ao arquivo certbot conforme mostrado.

chmod 0755 /usr/local/bin/certbot-auto

Etapa 2. Configurar bloco de servidor Nginx

Um bloco de servidor no Nginx é equivalente a um host virtual no Apache. A configuração de blocos de servidor não apenas permite que você configure vários sites em um servidor, mas também permite que o certbot comprove a propriedade do domínio para a Autoridade de Certificação – CA.

Para criar um bloco de servidor, execute o comando mostrado.

sudo vim /etc/nginx/conf.d/www.linuxtechwhiz.info

Certifique-se de substituir o nome de domínio pelo seu próprio nome de domínio. Em seguida, cole a configuração abaixo.

server {
   server_name www.linuxtechwhiz.info;
   root /opt/nginx/www.linuxtechwhiz.info;

   location / {
       index index.html index.htm index.php;
   }

   access_log /var/log/nginx/www.linuxtechwhiz.info.access.log;
   error_log /var/log/nginx/www.linuxtechwhiz.info.error.log;

   location ~ \.php$ {
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Salve o arquivo e saia do editor de texto.

Etapa 3: instalar o certificado Lets Encrypt no CentOS 8

Agora use o comando certbot para inicializar a busca e configuração do certificado de segurança Let’s Encrypt.

sudo /usr/local/bin/certbot-auto --nginx

Este comando irá executar e instalar vários pacotes Python e suas dependências conforme mostrado.

Posteriormente, isso será seguido por um prompt interativo, conforme mostrado:

Se tudo correr bem, você verá uma mensagem de parabéns no final.

Para confirmar se o seu site Nginx está criptografado, recarregue a página da web e observe o símbolo do cadeado no início da URL. Isso indica que o site está protegido por criptografia SSL/TLS.

Para obter mais informações sobre o certificado de segurança, clique no símbolo do cadeado e selecione a opção ‘Certificado’.

Mais informações sobre o certificado de segurança serão exibidas conforme mostrado abaixo.

Além disso, para testar a resistência do certificado de segurança, acesse https://www.ssllabs.com/ssltest/ e encontre uma análise mais precisa e aprofundada do status do certificado de segurança.

Etapa 4. Renovando o certificado Let’s Encrypt

Como vimos anteriormente, o certificado de segurança só é válido por 90 dias e precisa ser renovado antes de expirar.

Você pode simular ou testar o processo de renovação do certificado executando o comando:

sudo /usr/local/bin/certbot-auto renew --dry-run

Conclusão

Isso encerra este tutorial sobre como proteger o Nginx com Let’s Encrypt no CentOS 8. Let’s Encrypt oferece uma maneira eficaz e descomplicada de proteger seu servidor Nginx que, de outra forma, seria uma tarefa complexa de fazer manualmente.

Seu site agora deve estar totalmente criptografado. Algumas semanas antes da data de expiração do certificado, a EFF irá alertá-lo por e-mail para renovar o certificado e evitar interrupções que possam surgir devido a um certificado expirado. Isso é tudo pessoal por hoje!