web-dev-qa-db-fra.com

Comment puis-je désactiver TLS 1.0 et 1.1 dans apache?

Est-ce que quelqu'un sait pourquoi je ne peux pas désactiver tls 1.0 et tls1.1 en mettant à jour la config.

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

Après cela, je recharge Apache, je fais un scan ssl en utilisant ssllabs ou l'outil sod comodo, et il dit toujours que les tls 1.1 et 1.0 sont pris en charge. Je voudrais les supprimer?

40
David

Lorsque vous avez plusieurs VirtualServer TLS et utilisez l'indication de nom de serveur (SNI), c'est une syntaxe autorisée d'avoir une directive SSLProtocol pour chaque VirtualHost, mais sauf si vous avez des VirtualHosts IP dans la pratique les paramètres de la première occurrence de la directive SSLProtocol sont utilisées pour l'ensemble du serveur et/ou tous VirtualHosts basés sur le nom prenant en charge TLS1.

Vérifiez donc votre principal httpd.conf (et tous les extraits inclus par exemple de conf.d/*.conf et les inclusions similaires) pour plus d'occurrences de la directive SSLProtocol.

Votre syntaxe est correcte, bien que je sois d'accord avec réponse d'Ezra-s que, lorsque vous développez le raccourci all, vous pouvez légèrement améliorer:

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

en utilisant simplement:

 SSLProtocol TLSv1.2
54
HBruijn

que vous avez spécifié est suffisant, il ne devrait afficher aucun autre protocole. N'oubliez pas que SSLLABS met en cache les tests récents. Bien que sachant qu'il n'y a pas d'autres protocoles le définissant comme vous l'avez fait, c'est un peu compliqué exprès.

Dans tous les cas, vous pouvez l'utiliser ou simplement:

SSLProtocol TLSv1.2
11
ezra-s

Je rencontrais également des difficultés avec ce problème, la modification des configurations avec la directive SSLProtocol ne fonctionnait pas. J'ai fini par ajouter ce qui suit à ma configuration d'hôte virtuel:

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

Ce qui a parfaitement fonctionné. Vous pouvez en savoir plus sur la directive SSLOpenSSLConfCmdici .

6
Shultisj

Désactivez la version TLS1.0 dans Apache.

Si vous avez plusieurs hébergements virtuels, vous devez mettre à jour tous les fichiers de configuration, sinon, ssl.conf suffit.

Pour vérifier la version prise en charge TSL:

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

Modifiez le fichier de configuration Apache vi /etc/httpd/conf.d/web.conf supprimer tous les TLS et autoriser uniquement TLS1.2.

SSLProtocol TLSv1.2

Validez après la modification.

# 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
5
Narendra Kumar

J'ai aussi fait face à ce problème. Je ne pouvais pas désactiver TLSv1 ou TLSv1.1 pour un seul VHost en le configurant dans ce Vhost.

Nous avons trouvé deux solutions:

1 -

Étant donné que nous exécutons plusieurs adresses IP dans une instance, j'ai désactivé TLSv1 et TLSv1.1 par adresse IP, et donc également pour les Vhosts définis.

2 -

Lorsque nous configurons également des chiffrements solides, seul TLSv1.2 est disponible

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

  SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256
  SSLHonorCipherOrder on

Apache 2.4.23, openssl 1.0.2.

Peut-être que quelqu'un peut vérifier mes observations.

0
JSiegele