2011-09-14 10 views
9

No puedo deshabilitar los cifrados SSL débiles en Tomcat, como se documenta en muchos lugares, p. http://www.techstacks.com/howto/secure-ssl-in-tomcat.html.
Actualmente, mi conector es el siguiente:Cómo controlar los cifradores SSL disponibles para Tomcat

..Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" ciphers="SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA" clientAuth="false" sslProtocol="TLS" keystoreFile="C:\Programs\apache-tomcat-6.0.33\keystore" keystorePass="nn"/> 

cuando intento una conexión (usando IE o ssldigger) me sale el siguiente error en Tomcat:

java.lang.IllegalArgumentException: Unsupported ciphersuite SSL_RSA_WITH_RC4_128_SHA 
    at com.sun.net.ssl.internal.ssl.CipherSuite.valueOf(Unknown Source) 
    at com.sun.net.ssl.internal.ssl.CipherSuiteList.<init>(Unknown Source) 
    at com.sun.net.ssl.internal.ssl.SSLEngineImpl.setEnabledCipherSuites(Unknown Source) 
    at org.apache.tomcat.util.net.NioEndpoint.createSSLEngine(NioEndpoint.java:1141) 
    at org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:1096) 
    at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:1315) 
    at java.lang.Thread.run(Unknown Source) 

Por cierto, me quité los sistemas de cifrado no compatibles (casi uno por uno) y el único que me ha quedado que parece ser compatible es SSL_RSA_WITH_RC4_128_MD5

Además, supongo que un cifrado no compatible no está relacionado con el par de claves específicas de Tomcats, sino m mineral en general a las cifras ampliamente disponibles.

¿Qué pasa aquí?

Respuesta

15

pensé que out..the lista separada por comas de los sistemas de cifrado es un espacio en blanco sensible es decir, el culpable es el carácter de espacio después de la coma

+0

Puede aceptar esta respuesta también si ha funcionado, información bastante importante aquí. –

+0

Guau, sí. Esto acaba de salvar mi trasero. He estado mirando este problema por cerca de 12 horas y encontré esta respuesta. Esto debería ser gritado desde los tejados. – Rintoul

0

No estaría de más para que usted ha dicho a la versión de Tomcat, ya que depende en qué etiquetas se pueden usar en el bloque de Conexión. Tengo este problema similar con un servicio web que se ejecuta en Tomcat 6.0, y lo he leído por ejemplo.

ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,..." 

podría no funcionar correctamente, como los "sistemas de cifrado" podría tener que ser tan SSLCipherSuite, pero no estoy 100% seguro de esto. El documento que me llevó a pensar que esto podría ser aplicable se encuentra aquí: https://tomcat.apache.org/tomcat-6.0-doc/apr.html. En esa misma página, también se dice que el delimitador no es una coma (,) sino un signo de dos puntos (:). Así para Tomcat 6.0 se recomienda usar ya sea: (. Desatender esta respuesta para Tomcat 6.0.XX o superior)

SSLCipherSuite="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:..." 

o

ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:..." 

Espero que esto ayude a alguien que tiene que luchar con Tomcat 6.0

Cuestiones relacionadas