我对SSL,pfx文件等知之甚少。
我应该从我的应用程序(在由单独的团队管理的Linux服务器上的WAS 6上运行)调用https Rest webservice(这将是组织的内部服务),这是我正在进行的增强之一上。我曾经使用下面的作品。
public class SSLInfo {
public void sslContextInitialization() throws NoSuchAlgorithmException {
SSLContext ctx = SSLContext.getInstance("TLS");
try {
ctx.init(new KeyManager[0],
new TrustManager[] { new DefaultTrustManager() },
new SecureRandom());
} catch (KeyManagementException e) {
e.printStackTrace();
}
// SSLContext.setDefault(ctx);
HttpsURLConnection.setDefaultSSLSocketFactory(ctx.getSocketFactory());
}
}
class DefaultTrustManager implements X509TrustManager {
public DefaultTrustManager() {
}
public void checkClientTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException {
}
public 509Certificate[] getAcceptedIssuers() {
return null;
}
}
我曾经在调用webservice之前调用了sslContextInitialization(),但是我觉得它不安全。
我现在被要求在服务电话之前删除所有这些代码行,并获得 .PFX文件以及用户名和密码。我被告知证书应该安装在WAS服务器上(服务器管理团队通知已经完成),然后我的应用程序将正常工作,没有任何SSL相关代码。我怀疑这是否是正确的做法。
现在我的应用程序已部署到没有ssl上下文初始化代码的服务器,我现在可以在应用程序日志中看到以下错误 -
java.net.SocketException:默认SSL上下文初始化失败:null
请帮助我理解这一点,并让我知道我的应用程序需要做些什么才能成功点击服务。
OR可以从我的应用程序本身完全处理,而无需在服务器中添加任何内容吗?如果是,请指导。