57 votes

Comment désactiver TLS 1.0 et 1.1 dans Apache ?

Quelqu'un sait-il pourquoi je ne peux pas désactiver tls 1.0 et tls1.1 en mettant à jour la configuration.

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

Après avoir fait cela, j'ai rechargé apache. J'ai fait un scan ssl en utilisant ssllabs ou comodo ssl tool, et il dit toujours que tls 1.1 et 1.0 sont supportés. J'aimerais les supprimer ?

1voto

jasonnet Points 1

Il y a beaucoup de bonnes réponses ici, mais elles n'ont pas fonctionné pour moi ou étaient en fait exagérées. Les suggestions suivantes ont été testées sur Ubuntu 16.04 Apache 2.

Une observation clé est que le premier hôte virtuel sur ce port dicte la configuration... même si sa configuration ne spécifie pas explicitement une valeur SSLProtocol .

Pour déterminer le premier hôte virtuel :

bash
source /etc/apache2/envvars
apache2 -t -D DUMP_VHOSTS
exit

Sous CentOS, une seule ligne sera probablement nécessaire :

httpd -t -D DUMP_VHOSTS

Lorsque vous faites cela, vous devriez voir une liste des hôtes virtuels et elle pourrait inclure une section 443 quelque chose comme

*:443                  is a NameVirtualHost
     default server example.com (/etc/apache2/sites-enabled/example.com-le-ssl.conf:2)
     port 443 namevhost sample.com (/etc/apache2/sites-enabled/sample.com-le-ssl.conf:2)
     port 443 namevhost another.org (/etc/apache2/sites-enabled/another.org-le-ssl.conf:2)
     port 443 namevhost lucky.com (/etc/apache2/sites-enabled/lucky.com-le-ssl.conf:2)
             alias test15a.zzzzpost.com

Lorsque vous voyez cela, vous pouvez penser qu'il suffit de mettre à jour la configuration de SSLProtocol pour cet hôte virtuel "serveur par défaut".

Une autre complication que vous pourriez rencontrer avec les suggestions précédentes est que si vous recherchez les occurrences de SSLProtocol dans votre arborescence /etc/apache2/ ou /etc/httpd/, vous ne trouverez pas de configuration dans d'autres parties de votre système de fichiers. Cela peut être important si votre configuration comporte des directives Include. Par exemple, si vous avez utilisé le programme d'installation de Let's Encrypt, il ajoute souvent ces directives :

<IfModule mod_ssl.c> 
<VirtualHost *:443>  
    ServerName mydomain.com
    ...
    Include /etc/letsencrypt/options-ssl-apache.conf 
    ...
</VirtualHost>  

Mes suggestions sont donc les suivantes :

1. Determine the first virtual host on the given port.  See my example above 
   for details.
2. Inspect the configuration for that virtual host carefully.    
   a. If you find that config file explicitly sets SSLProtocol, make your change there.
   b. If not, but you find it includes a config file that is setting SSLProtocol, 
      consider setting it there.
   c. Otherwise, it's likely that setting it in your ssl.conf file would work.
   d. If not, consider creating your own config file with your SSLProtocol setting
      and including it in this first virtual host config, and possibly all virtual 
      host configs.

Comme indiqué par d'autres, la configuration souhaitée est la suivante

SSLProtocol             TLSv1.2

Une fois que vous avez effectué votre changement, vous pouvez rapidement le confirmer via :

systemctl reload apache2    
# This ^^^ must be done before vvvv
nmap --script ssl-enum-ciphers -p 443 sample.com | grep TLSv

Si vous avez réussi, cette liste n'est que le reflet de votre succès. TLSv1.2 .

0voto

Kiran Points 26

J'ai également été confronté à ce problème. Je n'ai pas pu désactiver TLSv1 ou TLSv1.1 pour un seul serveur virtuel en le configurant dans ce serveur virtuel.

Nous avons trouvé deux solutions :

1 -

Comme nous utilisons plusieurs adresses IP dans une Instance, j'ai désactivé TLSv1 et TLSv1.1 par adresse IP, et ainsi pour les Vhosts définis.

2 -

Lorsque nous ne configurons que des algorithmes de chiffrement forts, il semble que seul TLSv1.2 soit 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 quelqu'un pourra-t-il vérifier mes observations.

-1voto

Karthik Points 207

Vous devez redémarrer le service Apache à l'aide de la commande suivante pour prendre en compte les modifications.

sudo service apache2 restart

Le code ci-dessous fonctionne bien pour moi, vous pouvez consulter cet article pour plus de détails, 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>

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X