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
Instale o pacote
mod_ssl
:# dnf install mod_ssl
Edite o arquivo
/etc/httpd/conf.d/ssl.conf
e adicione as seguintes configurações à diretiva<VirtualHost _default_:443>
:Defina o nome do servidor:
ServerName example.com
ImportanteO nome do servidor deve corresponder à entrada definida no campo
Common Name
do certificado.Opcional: Se o certificado contiver nomes de host adicionais no campo
Subject Alt Names
(SAN), você pode configurarmod_ssl
para fornecer criptografia TLS também para esses nomes de host. Para configurar isto, adicione o parâmetroServerAliases
com os nomes correspondentes:ServerAlias www.example.com server.example.com
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"
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çãoSe 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.
Abra a porta
443
no firewall local:# firewall-cmd --permanent --add-port=443 # firewall-cmd --reload
Reinicie o serviço
httpd
:# systemctl restart httpd
NotaSe 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
-
Para mais detalhes sobre a configuração do TLS, consulte a documentação
SSL/TLS Encryption
no manual do Apache. Para detalhes sobre a instalação do manual, veja Seção 1.8, “Instalando o manual do Servidor HTTP Apache”.