我正在使用使用Apache HTTPClient的REST服务。这是HTTPS (PKI),目标安全性受信任存储和SSL证书和密钥管理>管理端点安全配置> OutBound > http >SSLConfiguration被指向正确的SSLConfigraiton (使用目标证书受信任的信任存储)。但是,当我使用HTTP客户端调用目标服务时,我得到的是没有身份验证的对等服务器。
当我浏览各种表单时,我看到了一些建议,比如代码中的点加载SSLContext。
但是,不是所有来自我的JVM ( WAS )的HTTP绑定都应该在我的信任存储区(设置为is SSL证书和密钥管理)进行验证吗?
我漏掉了别的东西吗?请建议一下。
发布于 2016-11-02 11:36:28
我也吃过这个
我用默认的SSLSocketFactory解决了这个问题。这允许您的HttpClient使用来自Websphrere的Truststore。这段代码用于HttpClient版本4.2,使用较新的版本,您可以直接使用我认为的Builder类来实现。
// register default SSLSocketFactory to use SSL Certificates from Websphere
javax.net.ssl.SSLSocketFactory wasSslFactory = (javax.net.ssl.SSLSocketFactory) javax.net.ssl.SSLSocketFactory.getDefault();
org.apache.http.conn.ssl.SSLSocketFactory socketFactory = new org.apache.http.conn.ssl.SSLSocketFactory(wasSslFactory, org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Scheme scheme = new Scheme("https", 443, socketFactory);
httpClient.getConnectionManager().getSchemeRegistry().register(scheme);发布于 2016-06-27 06:25:52
对于验证SSL连接,在默认情况下提供了一个SSL证书,它是一个自签名证书。在这种情况下,需要将根证书从WAS导入到HTTPClient程序正在使用的信任存储。
有关由此链接实现的SSL的更多信息,您可以参考implemented中的WebSphere。
要回答第二个问题,出站连接将使用WAS信任存储进行验证。在您的示例中,您正在使用HTTPClient触发WAS上的服务。这将从WAS透视图中定义为入站连接。
https://stackoverflow.com/questions/38040933
复制相似问题