Come posso disabilitare TLS 1.0 e 1.1 in apache?


31

Qualcuno sa perché non riesco a disabilitare tls 1.0 e tls1.1 aggiornando la configurazione a questo.

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

Dopo aver fatto ciò, ricarico apache, eseguo una scansione ssl usando ssllabs o lo strumento comodo ssl, e dice ancora che sono supportati tls 1.1 e 1.0. Vorrei rimuovere questi?

Risposte:


45

Quando si hanno più TLS VirtualHosts e si utilizza Server Name Indication (SNI), è una sintassi consentita avere una SSLProtocol direttiva per ciascun VirtualHost, ma a meno che non si abbia IP VirtualHosts in pratica, le impostazioni dalla prima occorrenza della SSLProtocoldirettiva vengono utilizzate per l'intero server e / o tutti gli host virtuali basati su nomi che supportano TLS 1 .

Quindi controlla i tuoi httpd.confframmenti principali (e tutti i frammenti inclusi, ad esempio conf.d/*.confe quelli simili) per ulteriori occorrenze della SSLProtocoldirettiva.

La tua sintassi è corretta, anche se concordo con la risposta di ezra-s che, quando espandi la allscorciatoia, puoi migliorare leggermente su:

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

semplicemente usando:

 SSLProtocol TLSv1.2

Tutto ciò ha senso, tuttavia ho fatto ciò che mi hai raccomandato. Ho visualizzato la mia directory / etc / httpd per tutti i riferimenti a "Protocollo SSL". L'ho quindi aggiornato a SSLProtocol TLSv1.2, quindi ho fatto un riavvio e mostra ancora che tls 1.0 e 1.1 è supportato. Ho anche provato su un altro dei miei server e lo stesso problema. Qualche idea?
David,

1
Falso allarme, questo è stato effettivamente memorizzato nella cache dai rapporti comodo e ssllabs. Sembra che stia segnalando correttamente ora. Grazie.
David,

3
Penso che consiglierei di usare "all" con meno per i protocolli che non vuoi. Le versioni future di apache definiscono "tutto" in modo diverso man mano che vengono sviluppati nuovi standard e quelli vecchi risultano non sicuri.
bobpaul,

se stai usando Letsencrypt, non dimenticare di controllare/etc/letsencrypt/options-ssl-apache.conf
Memes

9

che hai specificato è sufficiente, non dovrebbe mostrare altri protocolli. Ricorda che SSLLABS memorizza nella cache i test recenti. Anche se sapere che non ci sono altri protocolli che lo definiscono come te è stato contorto di proposito.

In ogni caso puoi usarlo o semplicemente:

SSLProtocol TLSv1.2

C'è qualche differenza se si specifica -ALL +TLSv1.2?
Chazy Chaz,

"Tutti" si espande in "+ SSLv3 + TLSv1 + TLSv1.1 + TLSv1.2". Non vedo alcun vantaggio nell'uso di "-Tutti". In realtà, dalla documentazione non è chiaro che "-all" sia anche una sintassi valida. Puoi fare il protocollo [+/-] ma non tutto è un protocollo: httpd.apache.org/docs/2.4/mod/mod_ssl.html
bobpaul

6

Stavo lottando anche con questo problema, la modifica delle configurazioni con la SSLProtocoldirettiva non funzionava. Ho finito per aggiungere quanto segue alla mia configurazione di host virtuale:

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

Che ha funzionato perfettamente. Puoi leggere di più sulla SSLOpenSSLConfCmddirettiva qui .


4

Disabilita la versione TLS1.0 in Apache.

Se si dispone di più hosting virtuale, è necessario aggiornare tutti i file di configurazione, altrimenti è sufficiente ssl.conf.

Per verificare la versione di supporto TSL:

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

Modifica il file di configurazione di Apache vi /etc/httpd/conf.d/web.confrimuovi tutti i TLS e consenti solo TLS1.2.

SSLProtocol TLSv1.2

Convalida dopo la modifica.

# 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

È necessario riavviare il servizio Apache utilizzando il comando seguente per riflettere le modifiche.

sudo service apache2 restart

Sotto il codice funzionerà bene per me, puoi leggere questo articolo per avere maggiori dettagli, 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>

Questo non disabiliterà nulla. Abiliterà solo TLSv1.2. E come riavviare varia da distribuzione a distribuzione e anche tra le versioni nella stessa distribuzione.
Gerald Schneider,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.