Red Hat Training

A Red Hat training course is available for RHEL 8

1.6. Configurando a criptografia TLS em um servidor Apache HTTP

Por padrão, o Apache fornece conteúdo aos clientes usando uma conexão HTTP não criptografada. Esta seção descreve como habilitar a criptografia TLS e configurar as configurações freqüentemente usadas relacionadas à criptografia em um Servidor HTTP Apache.

Pré-requisitos

  • O Servidor HTTP Apache está instalado e funcionando.

1.6.1. Adicionando criptografia TLS a um Servidor HTTP Apache

Esta seção descreve como ativar a criptografia TLS em um Servidor HTTP Apache para o domínio example.com.

Pré-requisitos

  • O Servidor HTTP Apache está instalado e funcionando.
  • A chave privada é armazenada no arquivo /etc/pki/tls/private/example.com.key.

    Para detalhes sobre a criação de uma chave privada e pedido de assinatura de certificado (CSR), bem como sobre como solicitar um certificado a uma autoridade certificadora (CA), consulte a documentação de sua CA. Alternativamente, se sua CA suporta o protocolo ACME, você pode usar o módulo mod_md para automatizar a recuperação e o provisionamento de certificados TLS.

  • O certificado do TLS é armazenado no arquivo /etc/pki/tls/private/example.com.crt. Se você usar um caminho diferente, adapte as etapas correspondentes do procedimento.
  • O certificado da CA é armazenado no arquivo /etc/pki/tls/private/ca.crt. Se você usar um caminho diferente, adapte as etapas correspondentes do procedimento.
  • Os clientes e o servidor web resolvem o nome do anfitrião do servidor para o endereço IP do servidor web.

Procedimento

  1. Instale o pacote mod_ssl:

    # dnf install mod_ssl
  2. Edite o arquivo /etc/httpd/conf.d/ssl.conf e adicione as seguintes configurações à diretiva <VirtualHost _default_:443>:

    1. Defina o nome do servidor:

      ServerName example.com
      Importante

      O nome do servidor deve corresponder à entrada definida no campo Common Name do certificado.

    2. Opcional: Se o certificado contiver nomes de host adicionais no campo Subject Alt Names (SAN), você pode configurar mod_ssl para fornecer criptografia TLS também para esses nomes de host. Para configurar isto, adicione o parâmetro ServerAliases com os nomes correspondentes:

      ServerAlias www.example.com server.example.com
    3. Defina os caminhos para a chave privada, o certificado do servidor e o certificado da CA:

      SSLCertificateKeyFile "/etc/pki/tls/private/example.com.key"
      SSLCertificateFile "/etc/pki/tls/certs/example.com.crt"
      SSLCACertificateFile "/etc/pki/tls/certs/ca.crt"
  3. Por razões de segurança, configure que somente o usuário root possa acessar o arquivo de chave privada:

    # chown root:root /etc/pki/tls/private/example.com.key
    # chmod 600 /etc/pki/tls/private/example.com.key
    Atenção

    Se a chave privada foi acessada por usuários não autorizados, revogar o certificado, criar uma nova chave privada e solicitar um novo certificado. Caso contrário, a conexão TLS não é mais segura.

  4. Abra a porta 443 no firewall local:

    # firewall-cmd --permanent --add-port=443
    # firewall-cmd --reload
  5. Reinicie o serviço httpd:

    # systemctl restart httpd
    Nota

    Se você protegeu o arquivo de chave privada com uma senha, você deve digitar esta senha toda vez que o serviço httpd for iniciado.

Etapas de verificação

  • Use um navegador e conecte-se a https://example.com.

Recursos adicionais