Saya mencoba mengkonfigurasi ulang server Apache Tomcat saya untuk hanya menggunakan TLSv1. Namun, masih jatuh kembali ke SSLv3 menggunakan browser tertentu.
Saya mengatur tag <connector> dengan pengaturan berikut:
<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" />
Apakah saya kehilangan pengaturan konfigurasi atau memiliki sesuatu yang tidak seharusnya saya hadirkan?
ssl
tomcat
configuration
poodle
rmiesen
sumber
sumber
sslProtocols=TLSv1
ayatsslProtocol="TLS"
(Perhatikan itus
?). Menentukan versi Tomcat & Java Anda akan menyelamatkan Anda dari kegilaan.Jawaban:
Bergantung pada versi Tomcat 5 dan Versi 6 SSLEnabled = "true" mungkin tidak berfungsi karena ditambahkan pertengahan rilis. Untuk melewati ini, Anda hanya perlu mengedit yang berikut ini: sslProtocols = TLS Ke: sslProtocols = "TLSv1, TLSv1.1, TLSv1.2"
Tampaknya aneh tetapi meskipun dikatakan TLS, itu berisi SSL 3.
Ini memperbaikinya pada instance Tomcat 5.5.20 kami dan Tomcat 6 kami. -Greg
Saya yakin yang perlu Anda lakukan adalah:
Jboss:
Tidak yakin tentang definisi cipher suite namun sslprotocols harus disetel ke TLSv1, TLSv1.1, TLSv1.2
tergantung pada versi kucing jantan Anda itu akan berbeda, solusi potensial lainnya:
Tomcat 5 dan 6
** Pada distro berbasis RHEL5, yang berikut ini berlaku untuk versi Tomcat 6 sebelum Tomcat 6.0.38 **
Catatan yang
TLSv1.1,TLSv1.2
didukung oleh Java 7, bukan Java 6. Menambahkan arahan ini ke server yang menjalankan Java 6 tidak berbahaya, tetapi tidak akan mengaktifkan TLSv1.1 & TLSv1.2.Tomcat> = 7
Konektor APR Tomcat
di atas diubah untuk memenuhi spesifikasi konektor Anda di atas. Sumber: https://access.redhat.com/solutions/1232233
sumber
sslEnabledProtocols
tidak bekerja untuk kami di Tomcat 6.sslProtocols = "TLSv1,...."
lakukan.Saya memiliki use case yang serupa, yaitu untuk mengaktifkan Tomcat 7 untuk hanya menggunakan TLSv1.2, tidak untuk kembali ke protokol SSL sebelumnya seperti TLSv1.1 atau SSLv3.
Saya menggunakan: C: \ apache-tomcat-7.0.64-64bit dan C: \ Java64 \ jdk1.8.0_60.
Mengikuti instruksi ini: https://tomcat.apache.org/tomcat-7.0-doc/security-howto.html . Tomcat relatif sederhana untuk mengatur dukungan SSL.
Dari banyak referensi saya menguji banyak kombinasi, akhirnya saya menemukan 1 yang akan memberlakukan Tomcat 7 untuk menerima TLSv1.2 saja. 2 tempat yang perlu disentuh:
1) Dalam C: \ apache-tomcat-7.0.64-64bit \ conf \ server.xml
dimana
keystoreFile
= toko kepercayaan lokal yang ditandatangani sendiriorg.apache.coyote.http11.Http11Protocol
= Implementasi BISE JSSE.Kami tidak menggunakan
org.apache.coyote.http11.Http11AprProtocol
, karena didukung oleh openssl. Openssl yang mendasarinya akan kembali untuk mendukung protokol SSL sebelumnya.2) Saat memulai Tomcat, aktifkan parameter lingkungan berikut.
Pembatasan JAVA_OPTS diperlukan, jika tidak Tomcat (yang didukung oleh Java8) akan kembali untuk mendukung protokol SSL sebelumnya.
Mulai Tomcat
C:\apache-tomcat-7.0.64-64bit\bin\startup.bat
Kita bisa melihat JAVA_OPTS muncul di log startup Tomcat.
Kemudian, kita dapat menggunakan perintah openssl untuk memverifikasi pengaturan kita. Pertama-tama hubungkan localhost: 8443 dengan protokol TLSv1.1. Tomcat menolak untuk membalas dengan sertifikat Server.
Hubungkan localhost: 8443 dengan protokol TLSv1.2, Tomcat membalas ServerHello dengan sertifikat:
Ini membuktikan bahwa Tomcat sekarang hanya merespons permintaan TLSv1.2 saja.
sumber
JAVA_OPTS=-Djdk.tls.client.protocols="TLSv1.2
tidak perlu (Tomcat 8.0.29, Java 1.8.0_74). Tidak disebutkan di sini juga: wiki.apache.org/tomcat/Security/POODLETomcat 7 dokumentasi jelas menyatakan bahwa
sslEnabledProtocols
dansslProtocol
opsi suppported dan bahwa ada tumpang tindih antara mereka:https://tomcat.apache.org/tomcat-7.0-doc/config/http.html
sumber
Di Tomcat 6.0.41, Anda harus menggunakan konektor pemblokiran karena NIO mengabaikan pengaturan tersebut.
http://wiki.apache.org/tomcat/Security/POODLE
http://mail-archives.apache.org/mod_mbox/tomcat-users/201410.mbox/%[email protected]%3E
Port konektor = "443" protokol = "org.apache.coyote.http11.Http11Protocol" maxThreads = "200" skema = "https" secure = "true" SSLEnabled = "true" clientAuth = "false"
keystoreFile = "tomcat.jks "keystorePass =" changeit "sslEnabledProtocols =" TLSv1, TLSv1.1, TLSv1.2 "/>
sumber
Dalam Tomcat 5.5 Anda harus menggunakan parameter tidak berdokumen
untuk membatasi penggunaan dari versi protokol ini.
sumber
Untuk menonaktifkan SSL 3 (POODLE) di Jboss 4.0.3 SP1 (Tomcat 5.5 dengan java 1.5) di server.xml ubah kode Anda seperti ini.
<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" />
sumber
untuk Tomcats yang lebih baru, gunakan kombo sslProtocols dan sslEnabledProtocols seperti ini:
<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=""/>
sumber
Pertama-tama, seperti yang dikatakan @iviorel, bukan
sslProtocols
, bukansslProtocol
. (Mengapa jawabannya dijatuhkan?)JSSE
Bagi saya, pada Tomcat 7 dan Java 7,
sslProtocol
dalam konfigurasi berikut tidak berfungsi:Ia mengatakan:
Tetapi berikut ini berfungsi dengan baik:
April
Untuk menonaktifkan SSL v3, dan mengaktifkan protokol TLSv1:
Untuk mengaktifkan protokol TLSv1, TLSv1.1, TLSv1.2:
Atau:
Catatan: nilai "TLSv1.1", "TLSv1.2" memerlukan Tomcat Native 1.1.32 dan versi Tomcat yang mendukungnya.
sumber