爲了向下兼容的原因,我需要的Geode Jetty服務器使用的TLSv1,而不是1.1或1.2製作的Geode使用的TLSv1
隨着ssl-enabled-components=web
和ssl-protocols=TLSv1.0
集gemfire.properties
然後當我開始的Geode,檢查與SSL Labs的HTTPS連接,然後我得到一個TLS結果:
我要找的TLS 1.1和TLS 1.0檢查也說Yes
不No
的Geode SSL docs說Make sure your Java installation includes the JSSE API and familiarize yourself with its use.
的JSSE即將在JRE/lib/security目錄的java.security
配置。我將其設置爲不禁用任何安全算法並重新啓動Geode,但結果相同。 TLS 1.1和1.0未能通過上面的SSL實驗室測試。
有沒有辦法強制Geode以https.protocols=TLSv1
開頭?
當我嘗試啓動的定位與使用--J=-XX:https.protocols=TLSv1
然後我得到
Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. Unrecognized VM option 'https.protocols=TLSv1'
沒有單獨碼頭的配置,我可以找到...
更新--J=-Dhttps.protocols=TLSv1
是正確的設置爲將TLS協議分配給JVM,並啓動Geode定位器和服務器。
更新當我設置java.security
設置jdk.tls.disabledAlgorithms=TLSv1.1, TLSv1.2
like the opposite of this那麼它是不可能的Jetty服務器都通過HTTPS進行通信。這讓我覺得Geode/Jetty ssl-protocols=TLSv1.0
設置不適用?
的Jetty config說TLS v1.0, v1.1 and SSL v3 are no longer supported by default. If your Jetty implementation requires these protocols for legacy support, they can be enabled manually.
有沒有用的Geode配置碼頭的方式?
首先,我想你想使用'--J = -Dhttps.protocols = TLSv1'。我最近也在看這個,並且在使用特定協議(在我的情況下是SSL)上沒有成功。但我沒有去修改JRE的'java.security'文件中的任何東西。 AFAIK,TLS版本是向後兼容的,所以你的服務器應該總是支持最新版本。 –
@JensD感謝'--J = -Dhttps.protocols = TLSv1'現在開始。問題是,當我使用[SSL實驗室](https://www.ssllabs.com/ssltest/analyze.html)測試HTTPS(通過Jetty)時,它仍然只是使用TLS 1.2和NOT TLS 1.1或1.0所以它就像[Jetty配置](https://www.eclipse.org/jetty/documentation/9.4.x/configuring-ssl.html)是否有一種方法來設置Geode內的Jetty我找不到配置文件...? – rupweb
我不明白爲什麼當服務器已經支持各種低版本的客戶端時,你想降級你的服務器TLS版本。無論如何,請注意,我們將把Jetty的版本更新到9.4,這完全降低了對TLSv1.1及更低版本的支持。對於在Jetty中設置協議的具體細節,我們在這裏執行:https://github.com/apache/geode/blob/d16d192b22f2932ac95780f18e92f0aece730240/geode-core/src/main/java/org/apache/geode/management/內部/ JettyHelper.java#L86 –