Ich versuche, meinen Apache Tomcat-Server so zu konfigurieren, dass er nur TLSv1 verwendet. Mit bestimmten Browsern wird jedoch immer noch auf SSLv3 zurückgegriffen.
Ich richte das <connector> -Tag mit den folgenden Einstellungen ein:
<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" />
Fehlt mir eine Konfigurationseinstellung oder ist etwas vorhanden, das ich nicht haben sollte?
ssl
tomcat
configuration
poodle
rmiesen
quelle
quelle
sslProtocols=TLSv1
VersesslProtocol="TLS"
(Beachten Sie, dasss
?). Wenn Sie Ihre Tomcat- und Java-Versionen angeben, werden Sie vor Wahnsinn geschützt.Antworten:
Abhängig von der Version von Tomcat 5 und Version 6 funktioniert SSLEnabled = "true" möglicherweise nicht, da es in der Mitte der Version hinzugefügt wurde. Um dies zu überwinden, müssen Sie nur Folgendes bearbeiten: sslProtocols = TLS To: sslProtocols = "TLSv1, TLSv1.1, TLSv1.2"
Scheint seltsam, aber obwohl TLS steht, enthält es SSL 3.
Dies hat es auf unseren Tomcat 5.5.20- und unseren Tomcat 6-Instanzen behoben. -Greg
Ich glaube, Sie müssen Folgendes tun:
Jboss:
Wir sind uns nicht sicher, ob in der Cipher Suite-Definition sslprotocols jedoch auf TLSv1, TLSv1.1, TLSv1.2 festgelegt sein sollte
Abhängig von Ihrer Tomcat-Version gibt es andere mögliche Lösungen:
Tomcat 5 und 6
** Auf RHEL5-basierten Distributionen gilt Folgendes für Tomcat 6-Versionen vor Tomcat 6.0.38 **
Beachten Sie, dass
TLSv1.1,TLSv1.2
dies von Java 7 und nicht von Java 6 unterstützt wird. Das Hinzufügen dieser Anweisungen zu einem Server mit Java 6 ist harmlos, aktiviert TLSv1.1 und TLSv1.2 jedoch nicht.Tomcat> = 7
Tomcat APR-Anschlüsse
Die obigen Angaben wurden geändert, um den oben angegebenen Steckverbinderspezifikationen zu entsprechen. Quelle: https://access.redhat.com/solutions/1232233
quelle
sslEnabledProtocols
wir haben nicht mit Tomcat 6 gearbeitetsslProtocols = "TLSv1,...."
.Ich habe einen ähnlichen Anwendungsfall, der es Tomcat 7 ermöglicht, ausschließlich TLSv1.2 zu verwenden und nicht auf frühere SSL-Protokolle wie TLSv1.1 oder SSLv3 zurückzugreifen.
Ich verwende: C: \ apache-tomcat-7.0.64-64bit und C: \ Java64 \ jdk1.8.0_60.
Folgen Sie dieser Anweisung: https://tomcat.apache.org/tomcat-7.0-doc/security-howto.html . Die Einrichtung der SSL-Unterstützung für Tomcat ist relativ einfach.
Aus vielen Referenzen habe ich viele Kombinationen getestet und schließlich eine gefunden, die Tomcat 7 dazu zwingt, nur TLSv1.2 zu akzeptieren. 2 Stellen zum Anfassen:
1) In C: \ apache-tomcat-7.0.64-64bit \ conf \ server.xml
woher
keystoreFile
= lokaler selbstsignierter Trust Storeorg.apache.coyote.http11.Http11Protocol
= JSSE BIO Implementierung.Wir verwenden es nicht
org.apache.coyote.http11.Http11AprProtocol
, da es von openssl betrieben wird. Das zugrunde liegende openssl wird zurückgreifen, um frühere SSL-Protokolle zu unterstützen.2) Aktivieren Sie beim Starten von Tomcat die folgenden Umgebungsparameter.
JAVA_OPTS-Einschränkung ist erforderlich, andernfalls greift Tomcat (mit Java8) auf frühere SSL-Protokolle zurück.
Starten Sie Tomcat
C:\apache-tomcat-7.0.64-64bit\bin\startup.bat
Wir können sehen, dass JAVA_OPTS im Tomcat-Startprotokoll angezeigt wird.
Dann können wir den Befehl openssl verwenden, um unser Setup zu überprüfen. Verbinden Sie zunächst localhost: 8443 mit dem TLSv1.1-Protokoll. Tomcat lehnt es ab, mit einem Serverzertifikat zu antworten.
Connect localhost: 8443 mit TLSv1.2-Protokoll, Tomcat antwortet ServerHello mit Zertifikat:
Dies zeigt, dass Tomcat jetzt nur noch auf TLSv1.2-Anforderungen reagiert.
quelle
JAVA_OPTS=-Djdk.tls.client.protocols="TLSv1.2
nicht erforderlich ist (Tomcat 8.0.29, Java 1.8.0_74). Es wird auch hier nicht erwähnt: wiki.apache.org/tomcat/Security/POODLEIn der Tomcat 7-Dokumentation wird eindeutig angegeben, dass die Optionen
sslEnabledProtocols
und unterstütztsslProtocol
werden und dass sich diese überschneiden:https://tomcat.apache.org/tomcat-7.0-doc/config/http.html
quelle
In Tomcat 6.0.41 müssen Sie den blockierenden Connector verwenden, da der NIO diese Einstellungen ignoriert.
http://wiki.apache.org/tomcat/Security/POODLE
http://mail-archives.apache.org/mod_mbox/tomcat-users/201410.mbox/%[email protected]%3E
Connector-Port = "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 "/>
quelle
In Tomcat 5.5 sollten Sie undokumentierte Parameter verwenden
um die Verwendung dieser Protokollversion genau zu beschränken.
quelle
Um SSL 3 (POODLE) in Jboss 4.0.3 SP1 (Tomcat 5.5 mit Java 1.5) in server.xml zu deaktivieren, ändern Sie Ihren Code wie folgt.
<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" />
quelle
Für neuere Tomcats verwenden Sie sslProtocols und sslEnabledProtocols wie folgt :
<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=""/>
quelle
Vor allem, wie @iviorel sagt, ist es nicht
sslProtocols
, es istsslProtocol
. (Warum hat seine Antwort Downscore bekommen?)JSSE Unter
Tomcat 7 und Java 7
sslProtocol
funktioniert die folgende Konfiguration nicht:Es sagt:
Aber das Folgende funktioniert gut:
APR
So deaktivieren Sie SSL v3 und aktivieren das TLSv1-Protokoll:
So aktivieren Sie die Protokolle TLSv1, TLSv1.1 und TLSv1.2:
Oder:
Hinweis: Für die Werte "TLSv1.1" und "TLSv1.2" ist Tomcat Native 1.1.32 und eine Version von Tomcat erforderlich, die dies unterstützt.
quelle