首页 > 解决方案 > 使用启用了 AMS 的 IBM MQ 的 JBOSS 进程获取无效密钥异常

问题描述

从我在 JBOSS AS 7.0 中运行的服务连接到启用 AMS 的 IBM-MQ 时出现以下错误。

2020-06-19 19:12:48,344 ERROR [stderr] (JBOSSEngineThread1-event51129525) Could not initialize log file, java.nio.file.AccessDeniedException: mqjms.log.0.lck
2020-06-19 19:12:48,347 ERROR [stderr] (JBOSSEngineThread1-event51129525) June 19, 2020 11:12:48 PM GMT[JBOSSEngineThread1-event51129525] com.ibm.mq.ese.prot.MessageProtectionBCImpl
2020-06-19 19:12:48,347 ERROR [stderr] (JBOSSEngineThread1-event51129525) The IBM MQ Advanced Message Security Java interceptor failed to protect message.
2020-06-19 19:12:48,347 ERROR [stderr] (JBOSSEngineThread1-event51129525) The IBM MQ Advanced Message Security Java interceptor was not able to protect the message.
2020-06-19 19:12:48,347 ERROR [stderr] (JBOSSEngineThread1-event51129525) See subsequent messages in the exception for more details about the cause of the error.
2020-06-19 19:12:48,347 ERROR [stderr] (JBOSSEngineThread1-event51129525) --------------------------------------------------------------------
2020-06-19 19:12:48,348 ERROR [stderr] (JBOSSEngineThread1-event51129525) June 19, 2020 11:12:48 PM GMT[JBOSSEngineThread1-event51129525] com.ibm.mq.ese.prot.MessageProtectionBCImpl
2020-06-19 19:12:48,348 ERROR [stderr] (JBOSSEngineThread1-event51129525) org.bouncycastle.operator.OperatorCreationException: cannot create signer: Supplied key (null) is not a RSAPrivateKey instance
2020-06-19 19:12:48,348 ERROR [stderr] (JBOSSEngineThread1-event51129525) --------------------------------------------------------------------
2020-06-19 19:12:48,348 ERROR [stderr] (JBOSSEngineThread1-event51129525) June 19, 2020 11:12:48 PM GMT[JBOSSEngineThread1-event51129525] com.ibm.mq.ese.prot.MessageProtectionBCImpl
2020-06-19 19:12:48,348 ERROR [stderr] (JBOSSEngineThread1-event51129525) java.security.InvalidKeyException: Supplied key (null) is not a 
2020-06-19 19:12:48,348 ERROR [stderr] (JBOSSEngineThread1-event51129525) --------------------------------------------------------------------
2020-06-19 19:12:48,435 ERROR [stderr] (JBOSSEngineThread1-event51129525)
2020-06-19 19:12:48,435 ERROR [stderr] (JBOSSEngineThread1-event51129525)
2020-06-19 19:12:48,435 ERROR [stderr] (JBOSSEngineThread1-event51129525)                                     FDCTitle
2020-06-19 19:12:48,435 ERROR [stderr] (JBOSSEngineThread1-event51129525)
2020-06-19 19:12:48,435 ERROR [stderr] (JBOSSEngineThread1-event51129525)
2020-06-19 19:12:48,435 ERROR [stderr] (JBOSSEngineThread1-event51129525) Product          :- ProductName
2020-06-19 19:12:48,435 ERROR [stderr] (JBOSSEngineThread1-event51129525) Date/Time        :- Fri Jun 19 23:12:48 GMT 2020
2020-06-19 19:12:48,435 ERROR [stderr] (JBOSSEngineThread1-event51129525) System time      :- 1592608368365
2020-06-19 19:12:48,435 ERROR [stderr] (JBOSSEngineThread1-event51129525) Operating System :- Linux
2020-06-19 19:12:48,435 ERROR [stderr] (JBOSSEngineThread1-event51129525) UserID           :- abcd
2020-06-19 19:12:48,435 ERROR [stderr] (JBOSSEngineThread1-event51129525) Java Vendor      :- Oracle Corporation
2020-06-19 19:12:48,435 ERROR [stderr] (JBOSSEngineThread1-event51129525) Java Version     :- 25.241-b26
2020-06-19 19:12:48,435 ERROR [stderr] (JBOSSEngineThread1-event51129525)
2020-06-19 19:12:48,436 ERROR [stderr] (JBOSSEngineThread1-event51129525) Source Class     :- com.ibm.mq.ese.intercept.JmqiPutInterceptorImpl
2020-06-19 19:12:48,436 ERROR [stderr] (JBOSSEngineThread1-event51129525) Source Method    :- beforePut
2020-06-19 19:12:48,436 ERROR [stderr] (JBOSSEngineThread1-event51129525) ProbeID          :- MP006004
2020-06-19 19:12:48,436 ERROR [stderr] (JBOSSEngineThread1-event51129525) Thread           :- name=JBOSSEngineThread1-event51129525 priority=5 group=EJB default ccl=ModuleClassLoader for Module "deployment.engineserver.war:main" from Service Module Loader

禁用 AMS 时,相同的服务代码运行良好。早些时候我遇到了缺少 trustAnchor 错误,我通过将 Keystore 和 truststore 证书合并到一个 jks 文件中解决了这个错误。我看到证书正在加载,当我更改密钥库属性中的证书别名时,我收到无效别名的错误消息。

我的 MQS_KEYSTORE_CONF:/apps//keystore.conf

jks.keystore=/apps/<PATH>/app-keystore.jks
jks.certificate=<alias_name for Cert>
jks.encrypted=no
jks.keystore_pass=<keystore password>
jks.key_pass=<keystore password>
jks.provider=IBMJCE

我正在使用 IBM jar 版本 9.0.0.5。非常感谢任何解决此问题的意见!

标签: javaibm-mqjboss7.xwebsphere-mq-ams

解决方案


推荐阅读