Java 使用SSL设置安全JMS队列连接
我正在尝试使用WebSphere Application Server为JMS瘦客户端设置SSL连接 这是当前的现有代码:Java 使用SSL设置安全JMS队列连接,java,ssl,jms,jndi,Java,Ssl,Jms,Jndi,我正在尝试使用WebSphere Application Server为JMS瘦客户端设置SSL连接 这是当前的现有代码: try { env.put("java.naming.factory.initial", intialFactory); env.put("java.naming.provider.url", "corbaloc:iiop:"+host+":"+port);
try {
env.put("java.naming.factory.initial", intialFactory);
env.put("java.naming.provider.url", "corbaloc:iiop:"+host+":"+port);
env.put("com.ibm.CORBA.ORBInit", "com.ibm.ws.sib.client.ORB");
if (GatewayPropMgr.getInstance().getSSLEnabled()) {
env.put("java.naming.security.protocol", "ssl");
env.put( "java.naming.ldap.factory.socket", ThreadLocalSocketFactory.class.getName() );
ThreadLocalSocketFactory.set(sslSocketFactory);
env.put("javax.net.ssl.keyStore", "/home/user/SwaKeystore.jks");
env.put("javax.net.ssl.keyStoreType", "JKS");
env.put("javax.net.ssl.keyStorePassword", keystorepass);
env.put("javax.net.ssl.trustStore", "/home/user/SwaTruststore.jks");
env.put("javax.net.ssl.trustStoreType", "JKS");
env.put("javax.net.ssl.trustStorePassword", truststorepass);
}
InitialContext context = new InitialContext(env);
QueueConnectionFactory qcf = (QueueConnectionFactory)context.lookup(queueConnectFactory);
QueueConnection mConn = qcf.createQueueConnection();
mConn.setExceptionListener(new SibQExceptionListener());
QueueSession session = mConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
}
但是,我仍然收到此错误:
SIBQ CWSIA0241E: An exception was received during the call to the method JmsManagedConnectionFactoryImpl.createConnection: com.ibm.websphere.sib.exception.SIResourceException: CWSIT0006E: It was not possible to contact any of the specified bootstrap servers. Please see the linked exception for further details. Bootstrap connections were attempted to: [git-lapp101:49013:BootstrapSecureMessaging]
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.generateException(TrmSICoreConnectionFactoryImpl.java:951)
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.remoteBootstrap(TrmSICoreConnectionFactoryImpl.java:646)
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.createConnection(TrmSICoreConnectionFactoryImpl.java:307)
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.createConnection(TrmSICoreConnectionFactoryImpl.java:222)
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createCoreConnection(JmsJcaConnectionFactoryImpl.java:711)
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createCoreConnection(JmsJcaConnectionFactoryImpl.java:647)
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createConnection(JmsJcaConnectionFactoryImpl.java:376)
at com.ibm.ws.sib.api.jms.impl.JmsManagedConnectionFactoryImpl.createConnection(JmsManagedConnectionFactoryImpl.java:165)
at com.ibm.ws.sib.api.jms.impl.JmsQueueConnectionFactoryImpl.createQueueConnection(JmsQueueConnectionFactoryImpl.java:86)
at com.ibm.ws.sib.api.jms.impl.JmsQueueConnectionFactoryImpl.createQueueConnection(JmsQueueConnectionFactoryImpl.java:75)
at com.stee.gateway.sibq.SibQManager.connect(SibQManager.java:152)
at com.stee.gateway.sibq.SibQManager.init(SibQManager.java:100)
at com.stee.gateway.storm.spout.SibQSpout.nextTuple(SibQSpout.java:99)
at backtype.storm.daemon.executor$fn__5638$fn__5653$fn__5684.invoke(executor.clj:610)
at backtype.storm.util$async_loop$fn__545.invoke(util.clj:479)
at clojure.lang.AFn.run(AFn.java:22)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.ibm.websphere.sib.exception.SIResourceException: CWSIT0007W: It is not possible to contact the bootstrap server at git-lapp101:49013:BootstrapSecureMessaging because of exception: com.ibm.websphere.sib.exception.SIErrorException: CWSIJ0064E: An internal error occurred..
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.contactBootstrapService(TrmSICoreConnectionFactoryImpl.java:761)
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.remoteBootstrap(TrmSICoreConnectionFactoryImpl.java:589)
... 15 more
Caused by: com.ibm.websphere.sib.exception.SIErrorException: CWSIJ0064E: An internal error occurred.
at com.ibm.ws.sib.jfapchannel.impl.octracker.OutboundConnectionTracker.connect(OutboundConnectionTracker.java:555)
at com.ibm.ws.sib.jfapchannel.impl.ClientConnectionManagerImpl.connect(ClientConnectionManagerImpl.java:132)
at com.ibm.ws.sib.comms.client.ClientSideConnection.connect(ClientSideConnection.java:234)
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.contactBootstrapService(TrmSICoreConnectionFactoryImpl.java:691)
... 16 more
.
javax.jms.JMSException: CWSIA0241E: An exception was received during the call to the method JmsManagedConnectionFactoryImpl.createConnection: com.ibm.websphere.sib.exception.SIResourceException: CWSIT0006E: It was not possible to contact any of the specified bootstrap servers. Please see the linked exception for further details. Bootstrap connections were attempted to: [git-lapp101:49013:BootstrapSecureMessaging]
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.generateException(TrmSICoreConnectionFactoryImpl.java:951)
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.remoteBootstrap(TrmSICoreConnectionFactoryImpl.java:646)
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.createConnection(TrmSICoreConnectionFactoryImpl.java:307)
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.createConnection(TrmSICoreConnectionFactoryImpl.java:222)
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createCoreConnection(JmsJcaConnectionFactoryImpl.java:711)
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createCoreConnection(JmsJcaConnectionFactoryImpl.java:647)
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createConnection(JmsJcaConnectionFactoryImpl.java:376)
at com.ibm.ws.sib.api.jms.impl.JmsManagedConnectionFactoryImpl.createConnection(JmsManagedConnectionFactoryImpl.java:165)
at com.ibm.ws.sib.api.jms.impl.JmsQueueConnectionFactoryImpl.createQueueConnection(JmsQueueConnectionFactoryImpl.java:86)
at com.ibm.ws.sib.api.jms.impl.JmsQueueConnectionFactoryImpl.createQueueConnection(JmsQueueConnectionFactoryImpl.java:75)
at com.stee.gateway.sibq.SibQManager.connect(SibQManager.java:152)
at com.stee.gateway.sibq.SibQManager.init(SibQManager.java:100)
at com.stee.gateway.storm.spout.SibQSpout.nextTuple(SibQSpout.java:99)
at backtype.storm.daemon.executor$fn__5638$fn__5653$fn__5684.invoke(executor.clj:610)
at backtype.storm.util$async_loop$fn__545.invoke(util.clj:479)
at clojure.lang.AFn.run(AFn.java:22)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.ibm.websphere.sib.exception.SIResourceException: CWSIT0007W: It is not possible to contact the bootstrap server at git-lapp101:49013:BootstrapSecureMessaging because of exception: com.ibm.websphere.sib.exception.SIErrorException: CWSIJ0064E: An internal error occurred..
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.contactBootstrapService(TrmSICoreConnectionFactoryImpl.java:761)
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.remoteBootstrap(TrmSICoreConnectionFactoryImpl.java:589)
... 15 more
Caused by: com.ibm.websphere.sib.exception.SIErrorException: CWSIJ0064E: An internal error occurred.
at com.ibm.ws.sib.jfapchannel.impl.octracker.OutboundConnectionTracker.connect(OutboundConnectionTracker.java:555)
at com.ibm.ws.sib.jfapchannel.impl.ClientConnectionManagerImpl.connect(ClientConnectionManagerImpl.java:132)
at com.ibm.ws.sib.comms.client.ClientSideConnection.connect(ClientSideConnection.java:234)
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.contactBootstrapService(TrmSICoreConnectionFactoryImpl.java:691)
... 16 more
.
at com.ibm.ws.sib.api.jms.impl.JmsManagedConnectionFactoryImpl.createConnection(JmsManagedConnectionFactoryImpl.java:198) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jms.impl.JmsQueueConnectionFactoryImpl.createQueueConnection(JmsQueueConnectionFactoryImpl.java:86) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jms.impl.JmsQueueConnectionFactoryImpl.createQueueConnection(JmsQueueConnectionFactoryImpl.java:75) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.stee.gateway.sibq.SibQManager.connect(SibQManager.java:152) [stormjar.jar:?]
at com.stee.gateway.sibq.SibQManager.init(SibQManager.java:100) [stormjar.jar:?]
at com.stee.gateway.storm.spout.SibQSpout.nextTuple(SibQSpout.java:99) [stormjar.jar:?]
at backtype.storm.daemon.executor$fn__5638$fn__5653$fn__5684.invoke(executor.clj:610) [storm-core-0.10.2.jar:0.10.2]
at backtype.storm.util$async_loop$fn__545.invoke(util.clj:479) [storm-core-0.10.2.jar:0.10.2]
at clojure.lang.AFn.run(AFn.java:22) [clojure-1.6.0.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202]
Caused by: com.ibm.websphere.sib.exception.SIResourceException: CWSIT0006E: It was not possible to contact any of the specified bootstrap servers. Please see the linked exception for further details. Bootstrap connections were attempted to: [git-lapp101:49013:BootstrapSecureMessaging]
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.generateException(TrmSICoreConnectionFactoryImpl.java:951) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.remoteBootstrap(TrmSICoreConnectionFactoryImpl.java:646) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.createConnection(TrmSICoreConnectionFactoryImpl.java:307) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.createConnection(TrmSICoreConnectionFactoryImpl.java:222) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createCoreConnection(JmsJcaConnectionFactoryImpl.java:711) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createCoreConnection(JmsJcaConnectionFactoryImpl.java:647) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createConnection(JmsJcaConnectionFactoryImpl.java:376) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jms.impl.JmsManagedConnectionFactoryImpl.createConnection(JmsManagedConnectionFactoryImpl.java:165) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
... 9 more
Caused by: com.ibm.websphere.sib.exception.SIResourceException: CWSIT0007W: It is not possible to contact the bootstrap server at git-lapp101:49013:BootstrapSecureMessaging because of exception: com.ibm.websphere.sib.exception.SIErrorException: CWSIJ0064E: An internal error occurred..
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.contactBootstrapService(TrmSICoreConnectionFactoryImpl.java:761) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.remoteBootstrap(TrmSICoreConnectionFactoryImpl.java:589) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.createConnection(TrmSICoreConnectionFactoryImpl.java:307) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.createConnection(TrmSICoreConnectionFactoryImpl.java:222) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createCoreConnection(JmsJcaConnectionFactoryImpl.java:711) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createCoreConnection(JmsJcaConnectionFactoryImpl.java:647) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createConnection(JmsJcaConnectionFactoryImpl.java:376) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jms.impl.JmsManagedConnectionFactoryImpl.createConnection(JmsManagedConnectionFactoryImpl.java:165) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
... 9 more
Caused by: com.ibm.websphere.sib.exception.SIErrorException: CWSIJ0064E: An internal error occurred.
at com.ibm.ws.sib.jfapchannel.impl.octracker.OutboundConnectionTracker.connect(OutboundConnectionTracker.java:555) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.jfapchannel.impl.ClientConnectionManagerImpl.connect(ClientConnectionManagerImpl.java:132) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.comms.client.ClientSideConnection.connect(ClientSideConnection.java:234) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.contactBootstrapService(TrmSICoreConnectionFactoryImpl.java:691) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.remoteBootstrap(TrmSICoreConnectionFactoryImpl.java:589) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.createConnection(TrmSICoreConnectionFactoryImpl.java:307) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.trm.client.TrmSICoreConnectionFactoryImpl.createConnection(TrmSICoreConnectionFactoryImpl.java:222) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createCoreConnection(JmsJcaConnectionFactoryImpl.java:711) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createCoreConnection(JmsJcaConnectionFactoryImpl.java:647) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionFactoryImpl.createConnection(JmsJcaConnectionFactoryImpl.java:376) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
at com.ibm.ws.sib.api.jms.impl.JmsManagedConnectionFactoryImpl.createConnection(JmsManagedConnectionFactoryImpl.java:165) ~[com.ibm.ws.sib.client.thin.jms_8.5.0.jar:WAS855.IM [cf111649.01]]
... 9 more
到目前为止,我已经尝试设置系统属性并创建了一个ssl.properties文件,而且因为我在java程序中使用了ApacheStorm,所以我还尝试在storm.yaml中的nimbus.childopts、supervisor.childopts、worker.childopts和topology.worker.childopts下设置属性,如下所示:
-Djavax.net.debug=ssl:handshake
-Djavax.net.ssl.protocol=TLSv1.2
-Dcom.ibm.CORBA.ConfigURL=file://home/user/ssl.properties
-Dcom.ibm.SSL.ConfigURL=file://home/user/ssl.properties
-Djavax.net.ssl.keyStore=/home/user/SwaKeystore.jks
-Djavax.net.ssl.keyStorePassword=keystorepass
-Djavax.net.ssl.keyStoreType=JKS
-Djavax.net.ssl.trustStore=/home/user/SwaTruststore.jks
-Djavax.net.ssl.trustStorePassword=truststorepass
-Djavax.net.ssl.trustStoreType=JKS