單獨的JDK/JRE版本是否確定SSLSocket.getSupportedProtocols()的結果?或者還有其他可以影響這個結果的配置/啓動參數嗎?例如,如果應用程序在JDK 1.7 update 21上運行,則此方法將返回[SSLv2Hello,SSLv3,TLSv1,TLSv1.1,TLSv1.2]。但是,如果應用程序在不支持SSLv3的JDK 1.8上運行,該方法是否僅返回[TLSv1,TLSv1.1,TLSv1.2]?單獨的JDK/JRE版本是否確定SSLSocket.getSupportedProtocols()的結果?
我假設這個問題的答案也適用於默認的啓用列表。例如,在JDK 1.7 update 21中,SSLSocket.getEnabledProtocols()默認返回[SSLv3,TLSv1]。所以對於JDK 1.8,默認啓用列表是[TLSv1.1,TLSv1.2]?
在一個側面說明,的SSLv2是較新的Java版本中完全刪除,不能使用,因此爲什麼它不」 t出現在'jdk.tls.disabledAlgorithms'列表中。 – Powerlord
配置在這個java.security文件中啓用/禁用SSL/TLS協議是否正常?或者我應該在客戶端代碼中處理這個問題?也就是說,我將檢索所有支持的協議,然後取出我不想要的那些(SSLv3,TLSv1),並將其餘的setEnabled取出。 – Zoomzoom
@Zoomzoom你可以真的做到這一點。我做了比其他任何事情都更多的Web開發,並且在那裏只列出要使用的協議/密碼是很平常的。 – Powerlord