Como posso desativar o TLS 1.0 e 1.1 no apache?


31

Alguém sabe por que não consigo desativar o tls 1.0 e o tls1.1 atualizando a configuração para isso.

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 

Depois de fazer isso, recarrego o apache, faço uma varredura ssl usando a ferramenta ssllabs ou comodo ssl, e ele ainda diz que os tls 1.1 e 1.0 são suportados. Gostaria de removê-los?

Respostas:


45

Quando você tem vários TLS VirtualHosts e usa o Server Name Indication (SNI), é uma sintaxe permitida ter uma SSLProtocol diretiva para cada VirtualHost, mas, a menos que você tenha IP VirtualHosts na prática, as configurações da primeira ocorrência da SSLProtocoldiretiva são usadas para todo o servidor e / ou todos os VirtualHosts baseados em nome que suportam TLS 1 .

Portanto, verifique seus principais httpd.conftrechos (e todos os trechos incluídos, por exemplo, conf.d/*.confe similares) para mais ocorrências da SSLProtocoldiretiva.

Sua sintaxe está correta, embora eu concorde com a resposta do ezra-s de que, ao expandir a allabreviação, você pode melhorar um pouco:

 SSLProtocol +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 

simplesmente usando:

 SSLProtocol TLSv1.2

Tudo isso faz sentido, no entanto, eu fiz o que você recomendou. Eu grep'd meu diretório / etc / httpd para todas as referências de "SSLProtocol". Atualizei-o para SSLProtocol TLSv1.2, reiniciei e ainda mostra que os tls 1.0 e 1.1 são suportados. Eu também tentei em outro servidor e o mesmo problema. Alguma ideia?
David

1
Alarme falso, esse foi realmente armazenado em cache pelos relatórios comodo e ssllabs. Parece estar relatando corretamente agora. Obrigado.
David

3
Eu acho que eu recomendaria usar "todos" com menos para os protocolos que você não deseja. Versões futuras do apache definem "todos" de maneira diferente, à medida que novos padrões são desenvolvidos e antigos são considerados inseguros.
bobpaul

se você estiver usando Letsencrypt, não se esqueça de verificar/etc/letsencrypt/options-ssl-apache.conf
Memes

9

que você especificou é suficiente, ele não deve mostrar nenhum outro protocolo. Lembre-se de SSLLABS armazena em cache os testes recentes. Embora saber que não há outros protocolos definindo isso como você fez seja meio complicado de propósito.

Em qualquer caso, você pode usar isso ou simplesmente:

SSLProtocol TLSv1.2

Existe alguma diferença se você especificar -ALL +TLSv1.2?
precisa saber é o seguinte

"Todos" se expande para "+ SSLv3 + TLSv1 + TLSv1.1 + TLSv1.2". Não vejo benefício em usar "-All". Na verdade, a partir da documentação, não está claro que "-all" seja uma sintaxe válida. Você pode fazer o protocolo [+/-], mas nem tudo é um protocolo: httpd.apache.org/docs/2.4/mod/mod_ssl.html
bobpaul

6

Eu estava lutando com esse problema também, modificar configurações com a SSLProtocoldiretiva não estava funcionando. Acabei adicionando o seguinte à minha configuração de host virtual:

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

O que funcionou perfeitamente. Você pode ler mais sobre a SSLOpenSSLConfCmddiretiva aqui .


4

Desative a versão TLS1.0 no Apache.

Se você possui várias hospedagens virtuais, é necessário atualizar todos os arquivos de configurações, caso contrário, o ssl.conf é suficiente.

Para verificar a versão de suporte do TSL:

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.0:
|   TLSv1.1:
|   TLSv1.2:

Modifique o arquivo de configuração do Apache vi /etc/httpd/conf.d/web.confremova todo o TLS e permita apenas o TLS1.2.

SSLProtocol TLSv1.2

Valide após a modificação.

# grep SSLProtocol /etc/httpd/conf.d/web.conf
SSLProtocol TLSv1.2

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.2:
# service httpd restart

-1

Você precisa reiniciar o serviço Apache usando o seguinte comando para refletir as alterações.

sudo service apache2 restart

O código abaixo funcionará bem para mim, você pode conferir este artigo para obter mais detalhes, https://karthikekblog.com/how-to-disable-enable-ssl-tls-protocols-in-ubentu-apache-linux-server/

<VirtualHost *:443>
ServerName www.yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol +TLSv1.2
SSLCertificateFile /etc/apache2/certificates/certificate.crt
SSLCertificateKeyFile /etc/apache2/certificates/certificate.key 
SSLCertificateChainFile /etc/apache2/certificates/intermediate.crt
</VirtualHost>

Isso não desativará nada. Isso ativará apenas o TLSv1.2. E como reiniciar varia de distribuição para distribuição, e mesmo entre versões na mesma distribuição.
Gerald Schneider
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.