2017-04-18 26 views
1

我正嘗試配置在Java 8上運行的應用程序以支持只有 TLSv1.2連接。我已經看到有關改變.../jre/lib/security/java.security的文章,啓動JVM時使用-Ddeployment.security.TLS *參數,當然在代碼中指定了「TLSV1.2」的SSLContext 。如何在Java 8服務器應用程序上啓用僅TLSv1.2

我已經設法讓服務器僅支持TLSv1.1和TLSv1.2,但在拒絕TLSv1.1連接時一直沒有成功。

任何幫助,將不勝感激。謝謝。

+0

(當前)'SSLContext'只設置協議上的_upper_綁定(除非FIPS模式)。你或任何庫/中間件是否在SSLServerSocket SSLSocket和/或SSLEngine上調用'.setEnabledProtocols'?在'JRE/lib/security/security.java'中是否有任何非標準設置或者對'Security.setProperty'的等價調用? –

+0

我並沒有意識到上限。感謝您的信息。如果我使用setEnabledProtocols(),我會得到所需的結果。但是,這是一個部分解決方案;我的原始問題仍然存在 - 是否有一種方法可以將啓用的協議限制爲僅針對整個JVM的TLS 1.2? – feh

+0

對於8u31和7u75,你可以編輯'java.security'中的'jdk.tls.disabledAlgorithms'(你的Q已經列出了,並且適用於所有運行該JRE的JVM),或者在JSSE之前等同地調用'Security.setProperty'初始化(可以根據JVM有所不同,但可能需要更新JRE默認更新或密碼分析知識更改)。請注意,這會影響傳入和傳出連接(如果同時使用)。還發現愚蠢http://stackoverflow.com/questions/32466407/how-to-force-java-server-to-accept-only-tls-1-2-and-reject-tls-1-0-and-tls -1-1-c –

回答

0

編輯security.java的確行得通,假設你有所有必要的逗號。

相關問題