连接到MQ使用安全密钥(公钥和私钥)
我能够建立使用不安全的通道连接到QManager和能够做我想做的事情永远。连接到MQ使用安全密钥(公钥和私钥)
但现在我试图通过安全通道连接到相同的QManage;我有从MQ服务器生成的安全密钥(公钥和私钥),但我不知道如何合并密钥并建立MQ连接。
我用Google搜索,发现了一些答案,建议下面的方法,但没有奏效。
System.setProperty("javax.net.ssl.trustStore","path to public key");
System.setProperty("javax.net.ssl.keyStore","path to private key");
例外,我得到了。
com.ibm.mq.MQException : MQJE001: Completion Code '2', Reason '2537'.
我将不胜感激关于如何使用安全密钥连接到QManager的一些指导或示例代码。
@JoshMc - 请您在使用IBM MQ类的Java或IBM MQ类的JMS找到答案下面
你的问题? 我正在使用适用于Java的IBM MQ类
-
IBM MQ的哪个版本是您正在使用的jar文件?
版本7
-
什么版本的MQ的是你试图连接到队列管理器?
版本8
-
您是否试图拥有MQ验证客户端证书(请在SVRCONN通道SSLCAUTH的值)
是。我有MQ管理员通过MQ服务器生成的公钥和私钥(我无权访问MQ服务器),并需要使用它来连接到MQ服务器。
粘贴在队列管理器AMQERR01.LOG显示当你试图连接任何错误。
我没有访问日志文件的权限。
以下是工作代码;我能够连接到不安全的通道发送的消息
公共无效MQSender(){
MQQueueManager QMgr = null;
try {
MQEnvironment.hostname = "hostname";
MQEnvironment.channel = "UNSECURE";
//MQEnvironment.channel = "SECURE";
MQEnvironment.port = 8080;
QMgr = new MQQueueManager("QManager");
int openOptions = MQConstants.MQOO_OUTPUT;
MQQueue queue = QMgr.accessQueue("QNAME",openOptions);
MQPutMessageOptions pmo = new MQPutMessageOptions();
pmo.options = MQConstants.MQPMO_LOGICAL_ORDER | MQConstants.MQPMO_SYNCPOINT;
MQMessage message = new MQMessage();
message.writeString("TEST");
queue.put(message, pmo);
QMgr.commit();
} catch (Exception e) {
if(QMgr!=null){
try {
QMgr.backout();
} catch (MQException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
}
}
你缺少指定从您的代码中使用的密码套件的选项: MQEnvironment。 SSLCIPHERSUITE
这方面的知识中心文章可以帮助:https://www.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.dev.doc/q031220_.htm
,做你在JKS商店有你的可信任的证书和私人证书/密钥对吗? 这些应更像:
System.setProperty(“javax.net.ssl.trustStore中”,“需要含有路径JKS文件证书以验证服务器证书”);
System.setProperty(“javax.net.ssl.keyStore”,“路径到包含证书和客户端的私有密钥JKS文件”);
请点击你的问题下的“编辑”链接,并添加一些更多的细节。 1.您正在使用用于Java的IBM MQ Classes或用于JMS的IBM MQ Classes? 2.哪个版本的IBM MQ是您正在使用的jar文件? 3.您尝试连接的队列管理器的MQ版本是什么? 4.您是否尝试让MQ验证客户端证书(检查SVRCONN通道上的SSLCAUTH值)5.粘贴尝试连接时队列管理器AMQERR01.LOG中显示的任何错误。提供最少的代码示例,这些代码可以在不使用TLS的情况下运行,并且代码使用TLS失败。 – JoshMc
@JoshMc - 请找到我的回答你的问题。谢谢。 –
请提供具体的版本。 – JoshMc