我能夠建立使用不安全的通道連接到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();
}
}
請點擊你的問題下的「編輯」鏈接,並添加一些更多的細節。 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