Desabilitar TLS 1.0 e 1.1 no Apache e Nginx

Todas as versões do protocolo SSL/TLS anteriores ao TLS 1.2 agora estão obsoletas e consideradas inseguras. Muitas plataformas de servidor web ainda têm o TLS 1.0 e o TLS 1.1 habilitados por padrão. No entanto, todos os navegadores modernos são compatíveis com o TLS 1.2 e TLS 1.3. Por esse motivo, é uma boa ideia que os proprietários de sites verifiquem a configuração do servidor para garantir que apenas as versões atuais e seguras de SSL/TLS estejam habilitadas e todas as outras (incluindo TLS 1.0, TLS 1.1 e SSL 3.0) estejam desabilitadas.

Este guia inclui instruções para verificar quais versões de SSL/TLS estão habilitadas em um site, desabilitar versões obsoletas de SSL/TLS no Apache e Nginx e mostra exemplos de erros do navegador resultantes de servidores que executam apenas versões obsoletas e inseguras de SSL/TLS

Verifique as versões SSL/TLS habilitadas

Ferramentas on-line

Você pode verificar rapidamente as versões de SSL/TLS que seu site suporta visitando o verificador de TLS do CDN77 e digitando o nome de domínio que deseja verificar. Como pode ser visto abaixo, https://example.com atualmente desabilita as versões 2 e 3 do SSL, mas habilita todas as versões do TLS (incluindo o TLS 1.1 e 1.0 obsoleto):

Versões SSL/TLS suportadas por example.com

Configuração do servidor

Apache

Para desabilitar o TLS 1.0 e 1.1 no Apache, você precisará editar o arquivo de configuração que contém oProtocolo SSLdiretiva para o seu site. Esse arquivo pode estar localizado em locais diferentes, dependendo de sua plataforma, versão ou outros detalhes de instalação. Alguns locais possíveis são:

/usr/local/apache2/conf/extra/httpd-ssl.conf(instalação padrão do Apache)

/etc/apache2/mods-enabled/ssl.conf(Ubuntu/Debian)

/private/etc/apache2/extra/httpd-ssl.conf(Mac OS)

Quando você localizar o arquivo de configuração correto, procure uma linha começando com SSLProtocol, que deve constar conforme o exemplo:

SSLProtocol all -SSLv3

Você pode desabilitar todas as versões obsoletas de SSL/TLS suportadas pelo Apache especificando-as da seguinte forma:

SSLProtocol TLSv1.2 TLSv1.3

A configuração acima habilita o TLS 1.2, bem como o TLS 1.3, se estiver disponível em seu ambiente.

LetsEncrypt & Certbot

Para quem utiliza certificados auto-assinados, tais como o Let’s Encrypt, é preciso verificar as configurações de forma mais detalhada. Neste exemplo, o Certbot instala automaticamente um arquivo isolado /etc/letsencrypt/options-ssl-apache.conf. Dentro deste arquivo existe uma configuração que podem estar de várias maneiras, incluindo essa:

SSLProtocol all -SSLv2 -SSLv3

Para que sejam habilitadas apenas as versões mais modernas e seguras, é necessário alterar esta linha para:

SSLProtocol TLSv1.2 TLSv1.3

Apache e hosts virtuais

O Apache pode executar mais de um site em um único servidor. Esses hosts virtuais podem ser baseados em número de IP, porta ou nome de domínio e podem incluir configurações que substituem a configuração básica do Apache. Por esse motivo, você deve verificar as configurações de cada host virtual em seus arquivos de configuração, especialmente se suas alterações na configuração básica de SSL/TLS não estiverem funcionando.

Para versões do Apache anteriores a 2.4.42 (construídas/vinculadas ao OpenSSL antes de 1.1.1), não era possível especificar protocolos SSL/TLS diferentes para hosts virtuais baseados em nome compartilhando o mesmo número de IP básico e porta – oProtocolo SSLdo primeiro host virtual foi aplicado a todos os outros. A partir do Apache 2.4.42/OpenSSL 1.1.1, oProtocolo SSLde cada host virtual baseado em nome é respeitado quando o Server Name Indication (SNI) é fornecido pelo cliente durante o handshake SSL/TLS .

Depois de fazer as alterações de configuração, recarregue o Apache para colocá-las em vigor.

Share this content:

Comments are closed