web-dev-qa-db-fra.com

Comment activer TLSv1.3 dans Apache2?

J'utilise la version Apache2:

Server version: Apache/2.4.29 (Ubuntu)
Server built:   2018-04-25T11:38:24

Je voudrais activer TLSv1.3 mais j'obtiens une erreur ci-dessous dans Apache2 si je mets SSLProtocol TLSv1.2 TLSv1.3 dans le ssl.conf fichier:

# apachectl configtest

AH00526: Syntax error on line 79 of /etc/Apache2/mods-enabled/ssl.conf:
SSLProtocol: Illegal protocol 'TLSv1.3'
Action 'configtest' failed.
The Apache error log may have more information.

N'est-il pas possible d'activer TLSv1.3 dans Apache2 (encore)?

Je sais que Nginx peut le faire, mais cette question s'adresse à Apache2.

12
James Kowalski

TLSv1.3 n'est pas encore pris en charge par Apache 2.4.

Lorsqu'il est pris en charge par OpenSSL (voir les informations ici) , Apache 2.4 devrait l'avoir aussi.

4
Bora

Debian Buster = TLSv1.3 pris en charge

Dans Debian Buster (actuellement en test), le TLSv1.3 est déjà pris en charge.

Les informations suivantes sont datées de:

# date -I

24/02/2019


Version Apache2:

# Apache2 -v

Version du serveur: Apache/ 2.4.38 (Debian)
Construit sur serveur: 2019-01-31 T20: 54: 05


Où activer

À l'échelle mondiale:

/etc/Apache2/mods-enabled/ssl.conf

Localement en:

Vos VirtualHost situés dans:

/etc/Apache2/sites-enabled/

Comment activer

À ce jour, le TLSv1.1 a finalement été déprécié. Donc, vous ne voulez que TLSv1.2 et TLSv1.3.

Pour ce faire, mettez cette ligne dans le fichier mentionné ci-dessus:

SSLProtocol -all +TLSv1.3 +TLSv1.2

Suites de chiffrement

Les suites de chiffrement sont maintenant divisées en 2 catégories, à savoir SSL (sous TLSv1.3) et TLSv1.3, vous voudrez peut-être utiliser votre propre ensemble de chiffres, prenez cela uniquement à titre d'exemple:

SSLCipherSuite    TLSv1.3   TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256
SSLCipherSuite    SSL       ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256

Courbes

Une note importante à la fin:

Il y a une nouvelle courbe que vous pourriez/devriez activer: X25519 .

Vous pouvez le faire par exemple comme ceci, encore une fois seulement un exemple:

SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1

Exemple de test de domaine sur SSLLabs

Expérimental: ce serveur prend en charge TLS 1.3 (RFC 8446).

TLSv1.3 enabled

15
LinuxSecurityFreak

TLSv1.3 est désormais pris en charge dans Apache2 version 2.4.36 avec OpenSSL 1.1.1 Source .

12
obencs

Note de l'éditeur

Attention, l'utilisation d'un PPA pourrait ruiner votre système, du moins les futures mises à niveau de distribution, d'après mon expérience au moins.


Si vous êtes prêt à prendre le risque ...

Vous pouvez utiliser ce PPA, cette commande l'ajoute à votre système sans tracas:

Sudo add-apt-repository ppa:ondrej/Apache2

Au moment d'écrire ces lignes, la version actuelle était:

$ Apache2 -v

Server version: Apache/2.4.37 (Ubuntu)
Server built:   2018-10-28T15:27:08

TLSv1.3 est pris en charge dans cette version.

Pour l'activer globalement pour tous les VirtualHosts, recherchez votre ssl.conf Et mettre:

SSLProtocol -all +TLSv1.2 +TLSv1.3

Redémarrez ensuite Apache2 et il devrait être prêt pour un test, notamment sur ces sites:

https://www.ssllabs.com/ssltest/

https://www.htbridge.com/ssl/

Mon exemple de résultat = TLSv1.3 activé

My example result = TLSv1.3 enabled

3
Aryeh Beitz

Il s'est avéré que la mise à jour d'OpenSSL 1.1.1 n'était pas suffisante. Apache devait également être changé . Ce changement était rétroporté vers la version 2.4.29. Par conséquent, depuis lundi avec 2.4.29-1ubuntu4.12 , Ubuntu 18.04 LTS prend désormais en charge TLS 1.3. C'était la configuration mentionnée par l'affiche originale.

Les versions TLS, les suites de chiffrement et les courbes sont toujours un débat brûlant comme la récente dépréciation de TLS 1.0 sur Stack Exchange montré . testssl.sh 3.0 était plutôt satisfait des valeurs par défaut d'Apache 2.4.29 et d'OpenSSL 1.1.1. Par conséquent, vous devez vérifier si vous n'avez pas désactivé par inadvertance les nouvelles technologies comme la courbe X448 ou TLS 1.3. Par exemple, si vous utilisez SSLProtocol -all, vous désactivez toutes les versions de protocole à venir. Par exemple, si vous utilisez SSLOpenSSLConfCmd Curves, vous désactivez toutes les courbes à venir.

Par conséquent, je ne sais pas si c'est une bonne idée de modifier ces valeurs par défaut une fois, puis de les oublier. Au lieu de cela, pour ceux qui aiment changer les valeurs par défaut, à la recherche d'une configuration maintenue, j'ai utilisé le Mozilla générateur comme point de départ. À la fin de la journée - donc revérifiez demain - et grâce à la manière déjà mentionnée de configurer les courbes, j'ai opté pour l'API SSL_Conf_Cmd complètement:

SSLEngine on
#SSLOpenSSLConfCmd MinProtocol TLSv1 # commented because current default in Ubuntu 18.04 LTS
SSLOpenSSLConfCmd Ciphersuites TLS_AES_128_GCM_SHA256 # if you have the computing resources, consider not to Tweak this
SSLOpenSSLConfCmd CipherString ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:AES128-SHA
SSLOpenSSLConfCmd Curves X25519:secp256r1:secp384r1 # if you have the computing resources, consider not to Tweak this
SSLOpenSSLConfCmd Options ServerPreference,-SessionTicket

Si vous optez pour une installation de certificat double ECDSA + RSA, par exemple ECC de Sectigo et RSA de RapidSSL, ce qui précède remplit Niveau de sécurité , toujours rétrocompatible même avec de très anciens clients.

1
Alexander Traud