我的应用程序正在使用ApacheCommonsHTTP客户端来使用http服务url。现在我们必须越过https端点url。为了使用相同的证书,我们收到了ssl客户端证书。我们如何在使用https url时使用带有密码的.jks(由于应用程序限制,无法使用其他API)
KeyStore identityKeyStore = KeyStore.getInstance("JKS");
FileInputStream identityKeyStoreFile = new FileInputStream(new File(certificatePath));
identityKeyStore.load(identityKeyStoreFile, password.toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
tmf.init(identityKeyStore);
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
keyManagerFactory.init(identityKeyStore, password.toCharArray());
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(keyManagerFactory.getKeyManagers(), tmf.getTrustManagers(), null);
SSLContext.setDefault(sslContext);
PostMethod post = new PostMethod("https://url");
HttpClient httpClient = new HttpClient();
String reqMessage = getSolaceRequestMessage(message,hostName,port,authentication);
Part[] parts = {
new StringPart("reqMessage", message),
};
post.setRequestEntity(
new MultipartRequestEntity(parts, post.getParams())
);
httpClient.executeMethod(post);
1条答案
按热度按时间b4wnujal1#
我们在后台服务部分使用的*.jks。
我可以给您举一个java spring boot项目的例子,我在后台服务中更改了http-->https,并在nginx中添加了证书。
https简单服务示例
当您更改后台服务时,您可以在前端应用程序中直接调用https(例如web)。