关于MQ简单的ssl定义问题,请高手指点啊.
很直观的Jms程序如下.但是报错了,郁闷中.求大哥们指点一下.
public static void main(String args[]) {
try {
MQQueueConnectionFactory factory = new MQQueueConnectionFactory();
//factory.setChannel("CLIENT.QM_TEST");
factory.setQueueManager("QM_TEST");
factory.setSSLCipherSuite("SSL_RSA_WITH_NULL_MD5"); ----服务器连接通道用的是NULL_MD5,MCA为空
factory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
factory.setPort(2000);
factory.setHostName("192.168.171.134");
QueueConnection connection = factory.createQueueConnection("Administrator","***");
QueueSession session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
Queue destination = session.createQueue("Q1");
QueueSender sender = session.createSender(destination);
TextMessage msg = session.createTextMessage();
msg.setText("Hello The MQ!!");
sender.send(msg);
sender.close();
//session.commit();
session.close();
connection.close();
}
catch (javax.jms.JMSException e) {
e.printStackTrace();
System.out.println("********************** Link Exception information ****************");
e.getLinkedException().printStackTrace();
System.out.println("******************************************************************");
} catch (Exception e) {
e.printStackTrace();
}
}
我用keyman做的两个keyStore,一个是给Jms程序用的,一个是给MQ manager使用
由于我没有找到可以使用的ca,我这两个keyStore 中间都定义有用 create new self-singer certificate定义自己的ca,然后分别导出签证
对于jms的keyStore我导入了别名是ibmwebspheremqqm_test的签证,对于mq使用的keystore(放在对应D:\IBM\WebSphere MQ\Qmgrs\QM_TEST\ssl)名字叫keyStore.jks我导入的是jms keyStore ca 生成的证书.
在导入的时候也只有用 singer certificate 的add,是不是这样有错啊
现在报如下错误(太长了贴不下,见附件),我能确定是ssl配置的问题,因为我在不使用ssl(使用密码和用户的时候),只用factory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);的时候目的队列是可以受到消息的.