J'essaie de reconfigurer mon serveur Apache Tomcat pour utiliser uniquement TLSv1. Cependant, il revient toujours à SSLv3 en utilisant certains navigateurs.
J'ai configuré la balise <connector> avec les paramètres suivants:
<Connector ...
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false" sslProtocol="TLS" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA" sslEnabledProtocols="TLSv1" />
Suis-je absent d'un paramètre de configuration ou ai-je quelque chose de présent que je n'aurais pas dû présenter?
ssl
tomcat
configuration
poodle
rmiesen
la source
la source
sslProtocols=TLSv1
versetssslProtocol="TLS"
(Remarquez celas
?). La spécification de vos versions Tomcat et Java vous évitera la folie.Réponses:
Selon la version de Tomcat 5 et de la version 6, SSLEnabled = "true" peut ne pas fonctionner car il a été ajouté à la mi-version. Pour dépasser cela, il vous suffit de modifier les éléments suivants: sslProtocols = TLS À: sslProtocols = "TLSv1, TLSv1.1, TLSv1.2"
Cela semble étrange mais même s'il dit TLS, il contient le SSL 3.
Cela l'a corrigé sur nos instances Tomcat 5.5.20 et Tomcat 6. -Greg
Je crois que ce que vous devez faire est:
Jboss:
Pas sûr de la définition de la suite de chiffrement, mais sslprotocols doit simplement être défini sur TLSv1, TLSv1.1, TLSv1.2
en fonction de votre version de tomcat, elle sera différente, d'autres solutions potentielles:
Tomcat 5 et 6
** Sur les distributions basées sur RHEL5, ce qui suit s'applique aux versions de Tomcat 6 antérieures à Tomcat 6.0.38 **
Notez que
TLSv1.1,TLSv1.2
Java 7 est pris en charge, pas Java 6. L'ajout de ces directives à un serveur exécutant Java 6 est inoffensif, mais n'activera pas TLSv1.1 et TLSv1.2.Tomcat> = 7
Connecteurs Tomcat APR
ce qui précède est modifié pour répondre aux spécifications de vos connecteurs ci-dessus. Source: https://access.redhat.com/solutions/1232233
la source
sslEnabledProtocols
n'a pas fonctionné pour nous sur Tomcat 6. l'asslProtocols = "TLSv1,...."
fait.J'ai un cas d'utilisation similaire, qui est de permettre à Tomcat 7 d'utiliser strictement TLSv1.2, et non de revenir aux protocoles SSL antérieurs tels que TLSv1.1 ou SSLv3.
J'utilise: C: \ apache-tomcat-7.0.64-64bit et C: \ Java64 \ jdk1.8.0_60.
En suivant cette instruction: https://tomcat.apache.org/tomcat-7.0-doc/security-howto.html . Tomcat est relativement simple à configurer la prise en charge SSL.
À partir de nombreuses références, j'ai testé de nombreuses combinaisons, enfin j'ai trouvé 1 qui imposera à Tomcat 7 d'accepter TLSv1.2 uniquement. 2 endroits nécessaires pour toucher:
1) Dans C: \ apache-tomcat-7.0.64-64bit \ conf \ server.xml
où
keystoreFile
= magasin de confiance local auto-signéorg.apache.coyote.http11.Http11Protocol
= Implémentation JSSE BIO.Nous ne l'utilisons pas
org.apache.coyote.http11.Http11AprProtocol
, car il est alimenté par openssl. Le openssl sous-jacent se repliera pour prendre en charge les protocoles SSL antérieurs.2) Au démarrage de Tomcat, activez les paramètres d'environnement suivants.
La restriction JAVA_OPTS est requise, sinon Tomcat (qui est alimenté par Java8) se repliera pour prendre en charge les protocoles SSL antérieurs.
Démarrez Tomcat
C:\apache-tomcat-7.0.64-64bit\bin\startup.bat
Nous pouvons voir que JAVA_OPTS apparaît dans le journal de démarrage de Tomcat.
Ensuite, nous pouvons utiliser la commande openssl pour vérifier notre configuration. Connectez d'abord localhost: 8443 avec le protocole TLSv1.1. Tomcat refuse de répondre avec un certificat de serveur.
Connectez localhost: 8443 avec le protocole TLSv1.2, Tomcat répond ServerHello avec un certificat:
Cela prouve que Tomcat répond désormais strictement à la demande TLSv1.2 uniquement.
la source
JAVA_OPTS=-Djdk.tls.client.protocols="TLSv1.2
n'était pas nécessaire (Tomcat 8.0.29, Java 1.8.0_74). Ce n'est pas mentionné ici non plus: wiki.apache.org/tomcat/Security/POODLELa documentation de Tomcat 7 indique clairement que les options
sslEnabledProtocols
etsslProtocol
sont prises en charge et qu'il existe un chevauchement entre elles:https://tomcat.apache.org/tomcat-7.0-doc/config/http.html
la source
Dans Tomcat 6.0.41, vous devrez utiliser le connecteur de blocage car le NIO ignore ces paramètres.
http://wiki.apache.org/tomcat/Security/POODLE
http://mail-archives.apache.org/mod_mbox/tomcat-users/201410.mbox/%[email protected]%3E
Port du connecteur = "443" protocol = "org.apache.coyote.http11.Http11Protocol" maxThreads = "200" scheme = "https" secure = "true" SSLEnabled = "true" clientAuth = "false"
keystoreFile = "tomcat.jks "keystorePass =" changeit "sslEnabledProtocols =" TLSv1, TLSv1.1, TLSv1.2 "/>
la source
Dans Tomcat 5.5, vous devez utiliser un paramètre non documenté
pour restreindre l'utilisation de cette version de protocole.
la source
Pour désactiver SSL 3 (POODLE) dans Jboss 4.0.3 SP1 (Tomcat 5.5 avec java 1.5) dans server.xml, changez votre code comme ceci.
<Connector port="443" address="${jboss.bind.address}" maxThreads="100" strategy="ms" maxHttpHeaderSize="8192" emptySessionPath="true" scheme="https" secure="true" clientAuth="false" keystoreFile="${jboss.server.home.dir}/conf/eCP.keystore" keystorePass="password" sslProtocol="TLS" protocols="TLSv1,TLSv1.1,TLSv1.2" />
la source
pour les Tomcats plus récents, utilisez le combo sslProtocols et sslEnabledProtocols comme ceci:
<Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocols="TLSv1,TLSv1.1,TLSv1.2" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" SSLEnabled="true" URIEncoding="UTF-8" keystorePass=""/>
la source
Tout d'abord, comme le dit @iviorel, ce n'est pas
sslProtocols
le cassslProtocol
. (Pourquoi sa réponse at-elle baissé?)JSSE
Pour moi, sur Tomcat 7 et Java 7,
sslProtocol
dans la configuration suivante ne fonctionne pas:Ça dit:
Mais ce qui suit fonctionne très bien:
APR
Pour désactiver SSL v3 et activer le protocole TLSv1:
Pour activer les protocoles TLSv1, TLSv1.1, TLSv1.2:
Ou:
Remarque: les valeurs "TLSv1.1", "TLSv1.2" nécessitent Tomcat Native 1.1.32 et une version de Tomcat qui le prend en charge.
la source