我需要在Windows上使用java(jre1.8.0_65)发送安全请求, 我使用以下代码来配置我的证书和密钥工厂。
KeyStore ks = KeyStore.getInstance("PKCS12");
//FileInputStream fis = new FileInputStream("certs/tester1024.pfx");
InputStream ins = this.getClass().getClassLoader()
.getResourceAsStream("certs/tester1024.pfx");
ks.load(ins, "1234".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SUNX509");
kmf.init(ks, "1234".toCharArray());
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(kmf.getKeyManagers(), null, null);
URL obj = new URL(httpURL);
HttpURLConnection connection = (HttpURLConnection) obj.openConnection();
if (connection instanceof HttpsURLConnection) {
((HttpsURLConnection)connection)
.setSSLSocketFactory(sc.getSocketFactory());
}
connection.setRequestMethod(method);
responseCode = connection.getResponseCode();
以上代码有效但在“CLIENT HELLO”中发送客户端的密码列表不包括Cipher TLS_RSA_WITH_AES_ 256 _CBC_SHA256。
它包含此TLS_RSA_WITH_AES_ 128 _CBC_SHA256
在Client Hello Ciper列表中,我希望包含此Cipherto。
请让我这样做我需要在Windows上更新任何与JAVA相关的东西,因为在linux上同样的java应用程序包括两个密码。