Segurança Apache: Instale seu Certificado SSL/TLS Agora!

Protegendo seu Servidor Apache com Certificado SSL/TLS

Este guia tem como objetivo instruí-lo sobre como implementar um certificado SSL/TLS no seu servidor web Apache. Após a conclusão deste processo, seu domínio ou endereço IP estará acessível através do protocolo HTTPS, garantindo uma conexão segura para seus usuários.

Vamos detalhar as etapas essenciais para alcançar esse objetivo:

  • Compilação do Apache HTTP 2.4.5 incluindo o módulo SSL.
  • Aquisição de um certificado SSL válido.
  • Configuração do Apache para habilitar o suporte ao protocolo SSL.

Instalação do Apache com Suporte SSL a partir do Código-Fonte

Para ativar o SSL, o Apache HTTP precisa ser compilado com o módulo mod_ssl. Usaremos uma máquina virtual CentOS 7 para demonstrar este processo.

  • Acesse o servidor Linux como usuário root e obtenha a versão mais recente do Apache.
wget http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz .

Observação: Você pode consultar este link para verificar a versão mais recente disponível.

  • Descompacte o arquivo com o comando gunzip.
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
  • Será criada uma nova pasta com o nome “httpd-2.4.25”.
  • Entre nessa pasta e execute o comando de configuração:
./configure --enable-ssl –-enable-so

Observação: Se estiver utilizando um servidor novo, poderá encontrar problemas relacionados ao APR, PCRE e OpenSSL. Nesses casos, consulte um guia de resolução de problemas.

Verifique se o comando configure não apresenta erros e prossiga com a instalação usando os seguintes comandos make:

make
make install

Como de costume, certifique-se de que não haja erros durante esses processos. Se tudo correr bem, o servidor web Apache estará instalado com suporte SSL.

Como Obter um Certificado SSL

Existem diversas maneiras de obter um certificado SSL validado por uma autoridade certificadora.

Se o SSL for destinado a um servidor web em uma Intranet, geralmente a organização tem uma equipe interna emissora de certificados. Consulte-os para obter o seu. Ainda será necessário gerar um CSR (Certificate Signing Request), que pode ser feito através do OpenSSL.

Se o objetivo é proteger um URL público na internet, você pode adquirir um certificado de empresas como VeriSign, GoDaddy, Namecheap ou Zero SSL, ou optar por um certificado gratuito fornecido pela Let’s Encrypt.

Let’s Encrypt é uma iniciativa da Linux Foundation que fornece certificados SSL/TLS gratuitamente. Utilizaremos o Let’s Encrypt para obter um certificado para o domínio “chandan.io”.

Existem vários métodos para gerar um CSR, mas a forma mais simples é utilizando a ferramenta online “SSL FOR FREE“.

Insira o endereço URL que deseja proteger.

Valide a propriedade do domínio através de um dos métodos sugeridos e faça o download dos arquivos do certificado.

Você receberá três arquivos:

  • key: Este é o seu arquivo de chave privada, que não deve ser compartilhado publicamente.
  • certificate: O certificado SSL para seu domínio.
  • ca_bundle: O certificado raiz/intermediário da autoridade certificadora.

Transfira esses arquivos para o servidor web. Eles serão usados na configuração do Apache.

Configurando o SSL no Apache

A etapa final envolve a configuração do Apache para responder a requisições via HTTPS.

  • Acesse seu servidor web Apache.
  • Crie um backup do arquivo httpd.conf (localizado em /usr/local/apache2/conf/ por padrão).
  • Abra o arquivo com o editor vi e confirme que os módulos mod_ssl e httpd-ssl.conf existem e não estão comentados.
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf

O arquivo httpd-ssl.conf será utilizado para especificar os detalhes do certificado. As seguintes configurações precisam ser ajustadas:

  • SSLCertificateFile: O caminho para o arquivo CRT do certificado que foi baixado.
  • SSLCertificateKeyFile: O caminho para o arquivo de chave privada.
  • SSLCertificateChainFile: O caminho para o arquivo ca_bundle.crt.

Dica: Crie uma pasta chamada “ssl” para armazenar todos os arquivos relacionados ao certificado.

  • Crie um backup (se necessário) e utilize o editor vi para alterar o arquivo.
SSLCertificateFile "/usr/local/apache2/conf/ssl/certificate.crt"
SSLCertificateChainFile "/usr/local/apache2/conf/ssl/ca_bundle.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/private.key"

Ajuste a diretiva ServerName, geralmente sendo o seu nome de domínio ou URL.

ServerName chandan.io
  • Salve as alterações no arquivo e reinicie o Apache.
cd /usr/local/apache2/bin
./apachectl stop
./apachectl start

Garanta que seu domínio esteja mapeado para o IP do servidor web recém-configurado. Após isso, tente acessar seu domínio usando HTTPS.

O exemplo acima mostra que “chandan.io” agora é acessível via HTTPS com o certificado configurado.

Estas são as etapas básicas para configurar um certificado SSL. Para aumentar ainda mais a segurança, você pode otimizar o SSL com as práticas recomendadas descritas aqui. Recomenda-se testar seu servidor SSL/TLS antes de colocá-lo em produção para assegurar que não haja exposições a vulnerabilidades comuns.

Espero que este guia tenha sido útil para implementar um certificado SSL no seu servidor web Apache, possibilitando acesso seguro via HTTPS.

Gostou deste artigo? Que tal compartilhá-lo?