JSSEHELPER不提供正确的SSLSocketFactory来扩展WebSphere 8.0中的安全连接



i正在使用8.0版本的WebSphere Application Server。我试图从Jssehelper获得SSLSocketFactory。

  1. 我成功获得了sslsocketFactory
  2. 我成功地从sslsocketFactory获得了SSLSocket
  3. 我已经成功建立了安全连接,

但是,客户端消息中提供的密码套件既不对应于

  1. CellDefault SSL设置/NodedeDefault SSL设置/NodedeDefaultNor
  2. 也不是我自己的自定义SSL配置。


解决此问题的解决方案是避免从Jssehelper中检索SSLSocketFactory。我不应该使用static方法getDefault(),而不是使用jssehelper。

public SSLSocket getSslSocket(Properties sslProps) {
SSLSocketFactory factory = SSLSocketFactory.getDefault();
SSLSocket socket = null;
try {
    socket = (SSLSocket) factory.createSocket();
} catch (IOException e) {
    e.printStackTrace();
}
return socket;

}

更多详细信息可以在此处找到:
有人可以澄清为什么此陈述:

slSocketFactory = jsseHelper.getSSLSocketFactory(sslMap, sslProps)

此语句

返回错误的" SSL套接字工厂"
SSLSocketFactory.getDefault()

返回正确的一个?
此外,在什么情况下,我应该分别使用从这些陈述中检索的工厂?

  1. sslsocketFactory.getDefault();
  2. jssehelper.getsslsocketFactory(sslmap,sslprops)
  3. getslsocketFactory(java.lang.string sslaliasname,java.util.map connectioninfo,sslconfigchangelistener侦听器)

非常感谢

尽管它不是直观的,但语句:

SSLSocketFactory factory = SSLSocketFactory.getDefault();

返回 WebSphere自定义SSLSocketFactory

然后,您可以以这种方式在线程上执行SSL-Configuration:

    Properties sslProperties = getProperties();
    jsseHelper.setSSLPropertiesOnThread(sslProperties);
    SSLSocket socket = getSslSocket();
    CommonIO.writeToSocket(socket, "127.0.0.1", 1234);
    jsseHelper.setSSLPropertiesOnThread(null);

尽管jssehelper.getsslsocketFactory(sslmap,sslconfig_xyz)也返回工厂,但它们的插座忽略了包裹在SSL-Configuration SSLCONFIG_XYZ 。

另一方面,如果您只想执行

  1. 协议
  2. 钥匙店
  3. TrustStore

此方法:

JSSEHelper.getSSLSocketFactory(sslMap, sslConfig_XYZ)

足够。

相关内容

  • 没有找到相关文章

最新更新