Alguém sabe por que não consigo desabilitar 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 ainda diz que tls 1.1 e 1.0 são suportados. Eu gostaria de remover estes?
Quando você tem vários TLS VirtualHosts e usa 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 daSSLProtocol
diretiva são usadas para todo o servidor e/ou todos os VirtualHosts baseados em nome que suportam TLS 1 .Portanto, verifique seu main
httpd.conf
(e todos os trechos incluídos de, por exemploconf.d/*.conf
, e inclusões semelhantes) para mais ocorrências daSSLProtocol
diretiva.Sua sintaxe está correta, embora eu concorde com a resposta de ezra-s de que, quando você expande a
all
abreviação, pode melhorar um pouco:simplesmente usando:
que você especificou é suficiente, não deve mostrar nenhum outro protocolo. Lembre-se de que o SSLLABS armazena em cache os testes recentes. Embora saber que não há outros protocolos definindo como você fez seja meio complicado de propósito.
Em qualquer caso, você pode usar isso ou simplesmente:
Eu também estava lutando com esse problema, modificar as configurações com a
SSLProtocol
diretiva não estava funcionando. Acabei adicionando o seguinte à minha configuração de host virtual:O que funcionou perfeitamente. Você pode ler mais sobre a
SSLOpenSSLConfCmd
diretiva aqui .Desative a versão TLS1.0 no Apache.
Se você tem várias hospedagens virtuais, você precisa atualizar todos os arquivos de configuração, caso contrário, ssl.conf é suficiente.
Para verificar a versão de suporte do TSL:
Modifique o arquivo de configuração do Apache,
vi /etc/httpd/conf.d/web.conf
remova todos os TLS e permita apenas o TLS1.2.Valide após a modificação.
Você pode habilitar o TLS 1.2 e 1.3 dessa maneira e ter tudo obsoleto desabilitado.
Eu também enfrentei esse problema. Não consegui desabilitar o TLSv1 ou o TLSv1.1 para apenas um VHost configurando-o nesse Vhost.
Encontramos duas soluções:
1 -
Como executamos vários endereços IP em uma instância, desativei o TLSv1 e o TLSv1.1 por endereço IP e também para os Vhosts definidos.
2 -
Quando configuramos apenas cifras fortes, parece que apenas o TLSv1.2 está disponível
Apache 2.4.23, openssl 1.0.2.
Talvez alguém possa verificar minhas observações.
Há muitas respostas boas aqui, mas elas não funcionaram para mim ou foram realmente um exagero. As sugestões a seguir foram testadas no Ubuntu 16.04 Apache 2.
Uma observação importante é que o primeiro host virtual nessa porta dita a configuração... mesmo que sua configuração não especifique explicitamente um valor SSLProtocol .
Para determinar o primeiro host virtual:
No CentOS, apenas uma linha provavelmente será necessária:
Ao fazer isso, você deve ver uma lista dos hosts virtuais e pode incluir uma seção 443 algo como
Ao ver isso, você pode achar que é suficiente atualizar a configuração SSLProtocol apenas para esse host virtual "servidor padrão".
Outra complicação que você pode encontrar com sugestões anteriores é que se você grep por ocorrências de SSLProtocol em sua árvore /etc/apache2/ ou /etc/httpd/, você não encontrará configuração em outras partes do seu sistema de arquivos. Isso pode ser importante se sua configuração tiver diretivas Include. Por exemplo, se você usou o instalador do Let's Encrypt, ele geralmente adiciona estes:
Então minhas sugestões são:
Como mencionado por outros, a configuração que você deseja é
Depois de fazer sua alteração, você pode confirmá-la rapidamente por meio de:
Se você foi bem-sucedido, isso lista apenas
TLSv1.2
.Você precisa reiniciar o serviço Apache usando o comando a seguir para refletir as alterações.
O código abaixo funcionará bem para mim, você pode verificar este artigo para obter mais detalhes, https://karthikekblog.com/how-to-disable-enable-ssl-tls-protocols-in-ubentu-apache-linux-server/