2
我有Java客戶端,它使用https連接到某些Web服務。客戶端的一個要求是,我們應該能夠從支持的密碼套件列表中進行選擇,然後強制客戶端使用它們。強制JVM使用某些Cipher進行https連接
從以下page
- https.cipherSuites系統屬性。這包含密碼套件名稱的逗號分隔列表,指定使用此HttpsURLConnection的密碼套件以啓用 。請參閱SSLSocket setEnabledCipherSuites(String [])方法。
但是,當我設置此JVM屬性並列出默認密碼。我得到的標準啓用密碼列表,這是不使用此屬性時相同。
代碼我使用的列表中來啓用密碼:
SSLSocketFactory factory = HttpsURLConnection.getDefaultSSLSocketFactory();
SSLSocket socket = (SSLSocket) factory.createSocket();
String[] enabledCiphers = socket.getEnabledCipherSuites();
for (String enabledCipher : enabledCiphers) {
System.out.println("Enabled Ciphers: " + enabledCipher);
}
設置使用屬性:
-Dhttps.cipherSuites=SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_DSS_WITH_DES_CBC_SHA
有什麼建議?