Pesquisa de site

Proteja o Apache com o certificado SSL Lets Encrypt no CentOS 8


Proteger seu servidor web é sempre um dos principais fatores que você deve considerar antes de colocar seu site no ar. Um certificado de segurança é fundamental para proteger o tráfego enviado de navegadores da web para servidores da web e, ao fazê-lo, inspirará os usuários a trocar dados com o seu site com total conhecimento de que o tráfego enviado está seguro.

Na maioria dos casos, os certificados de segurança são pagos e renovados anualmente. O certificado Let’s Encrypt é uma autoridade de certificação gratuita, aberta e automatizada que você pode usar para criptografar seu site. O certificado expira a cada 90 dias e é renovado automaticamente sem nenhum custo.

Leitura recomendada: Como proteger o Nginx com Let’s Encrypt no CentOS 8

Neste artigo, mostraremos como você pode instalar o Let's Encrypt Certificate com Certbot para o servidor web Apache e posteriormente configurar o certificado para renovar automaticamente no CentOS 8.

Pré-requisitos

Antes de começar, certifique-se de ter o seguinte em vigor:

1. Uma instância do servidor CentOS 8 com servidor web Apache HTTP instalado e em execução. Você pode confirmar se o seu servidor web Apache está instalado e funcionando.

sudo dnf install httpd
sudo systemctl status httpd

2. Um nome de domínio totalmente qualificado (FQDN) apontando para o endereço IP público do seu servidor web no seu provedor de hospedagem DNS. Para este guia, usaremos linuxtechwhiz.info apontando para o IP do servidor 34.67.63.136.

Etapa 1. Instale o Certbot no CentOS 8

Certbot é um cliente que automatiza a instalação do certificado de segurança. Ele busca o certificado da autoridade Vamos criptografar e o implanta em seu servidor web sem muitos problemas.

Certbot é totalmente gratuito e permitirá que você instale o certificado de forma interativa, gerando instruções baseadas na configuração do seu servidor web.

Antes de baixar o certbot, primeiro instale os pacotes necessários para a configuração de uma conexão criptografada.

Começaremos instalando o repositório EPEL que fornece pacotes adicionais de alta qualidade para sistemas baseados em RHEL:

sudo dnf install epel-release

Em seguida, instale os pacotes mod_ssl e openssl.

sudo dnf install mod_ssl openssl

Depois que todas as dependências forem instaladas, instale o Certbot e o módulo Apache para Certbot.

sudo dnf install certbot python3-certbot-apache

O comando instala o Certbot, o módulo Apache para Certbot e outras dependências.

Etapa 2: crie um host virtual Apache

O próximo passo será criar um arquivo host virtual para nosso domínio – linuxtechwhiz.info. Comece criando primeiro a raiz do documento onde você colocará seus arquivos HTML.

sudo mkdir /var/www/linuxtechwhiz.info.conf

Crie um arquivo index.html de teste conforme mostrado.

sudo echo “<h1>Welcome to Apache HTTP server</h1>” > /var/www/linuxtechwhiz.info/index.html

A seguir, crie um arquivo host virtual conforme mostrado.

sudo vim /etc/httpd/conf.d/linuxtechwhiz.info

Anexe a configuração abaixo.

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
</VirtualHost>

Salvar e sair.

Atribua as permissões à raiz do documento conforme mostrado.

sudo chown -R apache:apache /var/www/linuxtechwhiz.info

Para que as alterações tenham efeito, reinicie o serviço Apache.

sudo systemctl restart httpd

Etapa 3: Instale o certificado Let's Encrypt SSL no CentOS 8

Agora execute o certbot conforme mostrado para iniciar a instalação do certificado Let’s Encrypt.

sudo certbot --apache -d domain.com

No nosso caso, será:

sudo certbot --apache -d linuxtechwhiz.info

O comando o guiará por uma série de prompts para permitir que você configure o Lets Encrypt para o seu domínio. Certifique-se de fornecer seu endereço de e-mail, aceitar os Termos de Serviço e especificar os nomes de domínio que deseja usar no protocolo HTTPS, que é a versão criptografada do HTTP.

Se tudo correr bem, você receberá uma mensagem de parabéns no final informando que seu site foi protegido usando o certificado Let’s Encrypt. A validade do seu certificado também será exibida – geralmente após 90 dias após a implantação.

Agora volte para o arquivo do host virtual e anexe as seguintes linhas de configuração.

SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem

Salvar e sair.

A configuração final do host virtual Apache será semelhante a esta:

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined

 SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
</VirtualHost>

Mais uma vez, reinicie o Apache.

sudo systemctl restart httpd

Etapa 4: verificando o certificado SSL Let’s Encrypt

Para verificar se tudo está funcionando, inicie seu navegador e visite o endereço IP do seu servidor. Agora você deve ver um símbolo de cadeado no início do URL.

Para obter mais detalhes, clique no símbolo cadeado e clique na opção ‘Certificado’ no menu suspenso que aparece.

Os detalhes do certificado serão exibidos na próxima janela pop-up.

Além disso, você pode testar seu servidor em https://www.ssllabs.com/ssltest/ e seu site deve obter uma nota 'A' conforme mostrado.

Etapa 5: renovação automática do certificado SSL Vamos criptografar

Let’s Encrypt é válido apenas por 90 dias. Normalmente, o processo de renovação é realizado pelo pacote certbot que adiciona um script de renovação ao diretório /etc/cron.d. O script é executado duas vezes por dia e renovará automaticamente qualquer certificado dentro de 30 dias após a expiração.

Para testar o processo de renovação automática, realize um teste de simulação com o certbot.

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

Se nenhum erro foi encontrado, isso significa que você está pronto para prosseguir.

Isso nos leva ao final deste guia. Neste guia, demonstramos como você pode usar o certbot para instalar e configurar o certificado Let’s Encrypt no servidor web Apache rodando em um sistema CentOS 8.