Como configurar o Apache HTTP com certificado SSL?

Vamos proteger o Apache com certificado SSL/TLS.

Assim que o certificado for implementado, o domínio/IP configurado estará acessível por HTTPS.

Vamos começar.

Em um nível alto, faremos o seguinte.

  • Compile Apache HTTP 2.4.5 com módulo SSL
  • Obter certificado SSL
  • Configure o Apache para suportar SSL

Instale o Apache com SSL da fonte

Para configurar o SSL, o Apache HTTP deve ser compilado com mod_ssl. Vou usar o CentOS 7 VM de Oceano Digital para demonstrar isso.

  • Faça login no servidor Linux com root e baixe a versão mais recente do Apache
wget http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz .

Nota: você pode Verifique aqui para a versão mais recente.

  • Extrair pelo comando gunzip
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
  • Você terá uma nova pasta “httpd-2.4.25”
  • Entre e execute o seguinte comando configure
./configure --enable-ssl –-enable-so

Nota: Se você estiver fazendo isso em um servidor novo, poderá ter problemas relacionados a APR, PCRE, OpenSSL e poderá consultar o guia de solução de problemas.

Certifique-se de não receber nenhum erro do comando configure acima e, em seguida, instale com os comandos make.

make 
make install

Como de costume, certifique-se de não haver erros nos comandos acima. Isso conclui que você instalou um servidor web Apache com suporte a SSL.

  As 34 melhores ferramentas de teste da Web

Obtendo um Certificado SSL

Existem várias maneiras de gerar e obter o certificado SSL assinado pela autoridade de certificação.

Se você deseja implementar SSL no servidor da Web da Intranet, a maior parte da organização possui uma equipe interna de emissores de certificados, portanto, verifique com eles. Mas você ainda precisa gerar um CSR (Certificate Signing Request) e pode fazê-lo usando OpenSSL.

No entanto, se você deseja proteger um URL voltado para a Internet, pode comprar um certificado da VeriSign, GoDaddy, Namecheap, Zero SSLetc., ou obtenha um certificado GRATUITO de Vamos criptografar.

Let’s Encrypt é um projeto de colaboração da Linux Foundation que oferece um certificado SSL/TLS GRATUITO. Vou usar o Let’s Encrypt para obter um certificado para o meu domínio – Chandan.io

Existem várias maneiras de gerar CSR, mas a mais fácil que encontrei é usando o “SSL GRÁTIS” ferramenta on-line.

  Como tornar quase qualquer aparelho idiota inteligente

Digite o URL que você deseja proteger

Verifique a propriedade do domínio por um dos métodos listados e baixe seus arquivos de certificado de domínio.

Você obterá três arquivos que usaremos a seguir para configurar o servidor web Apache.

  • key – este é o seu arquivo de chave e não deve ser compartilhado com ninguém publicamente
  • Certificado – certificado SSL real para o seu domínio
  • Ca_bundle – Certificado raiz/intermediário do signatário
  • Transfira o arquivo baixado para o servidor Web. Vamos precisar deles em breve.

    Configuração SSL do Apache

    E uma etapa final seria configurar o Apache para que ele possa atender à solicitação por HTTPS.

    • Faça login no servidor web Apache
    • Faça um backup do arquivo httpd.conf (local padrão /usr/local/apache2/conf/)
    • Abra o arquivo com o editor vi e verifique se o módulo mod_ssl e o httpd-ssl.conf existem e não são comentados
    LoadModule ssl_module modules/mod_ssl.so 
    Include conf/extra/httpd-ssl.conf

    Usaremos o arquivo httpd-ssl.conf para configurar os detalhes do certificado. Há o seguinte que você precisa para garantir que existam os parâmetros corretos.

  • SSLCertificateFile – Caminho do arquivo CRT do certificado que você baixou anteriormente
  • SSLCertificateKeyFile – caminho do arquivo de chave private.a
  • SSLCertificateChainFile – caminho do arquivo ca_bundle.crt
  •   Como criar uma enquete no Zoom

    Dica: você pode querer criar uma nova pasta chamada “ssl” e manter todos os arquivos relacionados ao certificado nela.

    • Faça um backup, se necessário, e use o editor vi para modificar 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"

    Em seguida, você precisa configurar a diretiva “ServerName”. Normalmente, é o seu nome de domínio/URL

    ServerName chandan.io
    • Salve o arquivo e reinicie o Apache Webserver
    cd /usr/local/apache2/bin 
    ./apachectl stop 
    ./apachectl start

    E, finalmente, você precisa garantir que seu domínio seja mapeado para o IP do servidor web recém-configurado. Uma vez feito, tente acessar seu domínio com HTTPS.

    E como você pode ver, Chandan.io é acessível por https com o certificado que configurei.

    As etapas acima são essenciais para configurar um certificado SSL, e você deve ajustar ainda mais o SSL para endurecer e proteger, o que expliquei aqui. Antes de entrar em operação, você também pode testar o SSL/TLS do seu servidor web para garantir que ele não esteja exposto a vulnerabilidades de segurança comuns.

    Espero que isso lhe dê uma idéia de como implementar um certificado SSL em seu servidor da Web Apache, para que o URL seja acessível por HTTPS.

    Gostou de ler o artigo? Que tal compartilhar com o mundo?