2014-06-15 85 views
1

規格:Tomcat的SSL配置JSSE - 什麼是sslProtocol屬性

的Tomcat 7.0.52
的Java 7.0_60

簡介:

爲了配置Tomcat來支持安全連接我們必須配置連接器元素server.xml文件。 首先我們必須選擇SSL的實現。假設我們使用JSSE。 當JSSE實現使用,那麼我們就可以使用兩個屬性來配置SSL協議:

  • sslEnabledProtocols
  • sslProtocol

無奈:

它似乎並不認爲sslProtocol屬性可以做任何事情。它看起來完全死了。只有sslEnabledProtocols可以影響使用的協議。

例如:

<Connector port="8443" SSLEnabled="true" 
    ... 
    protocol="org.apache.coyote.http11.Http11Protocol" 
    sslProtocol="SSLv3"/> 

價值的SSLv3不會改變任何東西。如果瀏覽器支持TLS1.2,那麼將使用TLS1.2,如果瀏覽器支持onL TLS1.0,則將使用TLS1.0。所以這個值對我來說沒有任何改變。只有值爲sslEnabledProtocols的事項。

問:

有人能解釋sslProtocol屬性的含義是什麼?何時使用它。

謝謝。

回答

0

值SSLv3不會改變任何東西。如果瀏覽器支持TLS1.2,那麼將使用TLS1.2,如果瀏覽器支持onL TLS1.0,則將使用TLS1.0。

這是不正確的。如果將sslProtocol設置爲SSLv3,則只會使用SSLv3,特別是不會使用任何版本的TLS。最好不要指定這個屬性:這樣你就可以使用所使用的JSSE版本支持的所有可能的SSL/TLS版本。

+0

我測試過了。例如使用IE和Chrome。它看起來像缺少明確設置sslEnabledProtocols意味着所有protcols默認啓用。所以使用最高支持的協議。如果瀏覽器僅支持TLS1.0,則選擇TLS1.0,如果瀏覽器支持TLS1.2,則選擇TLS1.2。 sslProtocol沒有改變。我不打算在任何地方設置這個配置,它只是一個例子。我可以將sslEnabledProtocols更改爲'SSLv3',然後每個瀏覽器都使用SSLv3。 – Hubert