2011-09-14 44 views
9

我無法禁用Tomcat中的弱SSL密碼,如許多地方所記錄的,例如http://www.techstacks.com/howto/secure-ssl-in-tomcat.html
目前,我的連接器如下所示:如何控制可用於Tomcat的SSL密碼

..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"/> 

,當我嘗試連接(使用IE或ssldigger)我得到在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) 

順便說一句,我刪除了不支持的密碼(幾乎是一個接一個),我唯一支持的似乎是SSL_RSA_WITH_RC4_128_MD5

此外,我假設一個不受支持的密碼與Tomcats的特定密鑰對無關,但m一般來說礦石都是廣泛使用的密碼。

這裏有什麼問題?

回答

15

我想它out..the逗號分隔的密碼列表是空白敏感的,即罪魁禍首是逗號

+0

你也可以接受這個答案,如果它已經工作,相當重要的位信息在這裏。 –

+0

哇,是的。這只是拯救了我的屁股。我一直在看這個問題接近12個小時,並找到了答案。這應該從屋頂呼喊。 – Rintoul

0

後的空格字符它不會傷害你來告訴Tomcat的版本,因爲它依賴在連接塊中可以使用哪些標籤。我在Tomcat 6.0上運行的Web服務有類似的問題,並且已經讀過

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,..." 

可能無法正常工作,爲「密碼」可能需要爲的SSLCipherSuite,但我不是這個100%肯定。引起我認爲這可能適用的文件在這裏找到:https://tomcat.apache.org/tomcat-6.0-doc/apr.html。在同一頁中,還表示分隔符不是逗號(,)而是冒號(:)。 所以爲Tomcat 6.0我會建議使用兩種:(無視這個答案Tomcat的6.0.XX或更高)

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:..." 

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:..." 

希望這可以幫助別人誰擁有使用Tomcat 6.0掙扎