MQ 客户端 -> MQ 服务器 TLS 通信失败并出现不同的错误 AMQ9665E

问题描述 投票:0回答:1

这是我的第一个问题,所以请原谅可能的格式错误等。

我正在尝试在 MQ 服务器和 MQ 客户端之间设置 TLS 连接,如下所示:

MQ Server 
I create a new key.kdb  and imported a .pfx certificate signed by our internal CA - ROOT CA -Intermediate CA-Issuing CA (these signers automatically get imported with the .pfx) 
-personal certificate label renamed to ibmwebspheremqqname

MQ Clients:
We have cluster of 6 Biztalk servers 

So imported .pfx certificate same way, issued by exact same authorities.
-personal certificate label renamed to ibmwebspheremqserviceaccount (service account used for connection) 

服务器端所有参数都已配置,因为在此测试环境中我们曾经使用 TLS 但使用自签名证书并且它有效。 实际上,当我在 MQ 服务器端导入其中一台客户端 MQ 服务器的自签名证书时,连接就建立了。我不知道怎么做,因为我从 key.kdb 中删除了客户端的所有内容。

我在客户端遇到的错误:

1/11/2024 12:58:28 - Process(14980.2) User(serviceAccount) Program(BTSNTSvc.exe)
                      Host(Host) Installation(Installation1)
                      VRMF(9.2.0.7)
                      Time(2024-01-11T11:58:28.800Z)
                      RemoteHost(IP)
                      ArithInsert1(420)
                      CommentInsert1(Channel)
                      CommentInsert2(gsk_secure_soc_init)
                      CommentInsert3(MQSERVER (IP)(Port))
                     
AMQ9665E: SSL connection closed by remote end of channel
'NIBC.CH.STRGTLS.CLAU'.

EXPLANATION:
The SSL or TLS connection was closed by the remote host 'MQSERVER
(IP)(Port)' during the secure socket handshake. The channel is
'Channel'; in some cases its name cannot be determined and so is
shown as '????'. The channel did not start.
ACTION:
Check the remote end of the channel for SSL and TLS errors. Fix them and
restart the channel. 

+
AMQ9208E: Error on receive from host MQSERVER(IP)(Port).

EXPLANATION:
An error occurred receiving data from MQSERVER(IP)(PORT) over
TCP/IP. This may be due to a communications failure.

我在 MQ 服务器端遇到的错误:

AMQ9999E: Channel '????' to host 'client (ip)' ended abnormally.

EXPLANATION:
The channel program running under process ID 81092(11660) for channel '????'
ended abnormally. The host name is 'client (IP)'; in some cases
the host name cannot be determined and so is shown as '????'.

and: 

The channel is '????'; in some cases its name cannot be determined and so is
shown as '????'. The remote host is 'client (ip)'. The channel
did not start. 

The details of the certificate which could not be validated are
'[Class=]GSKVALMethod::X509[Issuer=]CN=btsacpm432.prd.domain,C=US[#=]613b2cab[Subject=]CN=client.prd.domain,C=US[Class=]GSKVALMethod::PKIX[Issuer=]CN=client.prd.domain,C=US[#=]613b2cab[Subject=]CN=client.prd.domain,C=US'.


The certificate validation error was 575010.
ACTION:
Check which of the possible causes applies on your system. Correct the error,
and restart the channel. ` 

我已经更改了 QM SSL 属性以指向新的 key.kdb 而不是旧的。看起来由于某种原因正在检查旧的自签名证书。

我还想提一下,在生产中我们已经有了这个解决方案,其工作方式与我在第一部分中解释的完全一样,有两个由内部 CA 签名的证书。

奇怪的是,我们成功地使 6 个集群服务器之一能够实际使用此配置。其他的都不是。

我正在用这个测试 TLS 连接

C:\Program Files\IBM\MQ\bin>AMQSSSLC -m QM -c Channel -x ip(port) -k "C:\Program Files\IBM\MQ\key" -s TLS_RSA_WITH_AES_128_CBC_SHA256 -l ibmwebspheremqserviceaccount
Sample AMQSSSLC start
Connecting to queue manager QM
Using the server connection channel TLS CHANNEL
on connection name IP(1418).
Using SSL CipherSpec TLS_RSA_WITH_AES_128_CBC_SHA256
Using SSL key repository stem C:\Program Files\IBM\MQ\key
Certificate Label: ibmwebspheremqserviceaccount
No OCSP configuration specified.
Connection established to queue manager QM
Sample AMQSSSLC end

但在其他 5 台服务器上也能正常工作。所以我想这在这一点上是无关紧要的?.

security ssl-certificate ibm-mq tls1.2
1个回答
0
投票

我不能 100% 确定问题是什么,但有两个可能的原因:

1) 我在 MQ 服务器上有两个 QM,它们与相同的 Biztalk MQ 客户端进行通信。 一个 QM 配置了自签名证书,双向握手,因此 MQ key.kdb 在签名者中包含 Biztalk 的自签名证书,并且所有 Biztalk MQ 客户端都包含用于 QM 的 MQ 服务器的自签名证书。
基于 CA 证书的第二个 QM,如帖子第一部分中所述。

2) Biztalks MQC 方面,就我而言,它在 .ini 文件中没有特定配置(就像 SSLKeyRepository 也在寻找),所以也许因为它直接在安装文件夹中查找,所以我在其中有自签名证书其他证书。

我排除了两种可能的原因,现在沟通如下:

MQ 服务器 我创建一个新的 key.kdb 并导入由我们的内部 CA - ROOT CA -Intermediate CA-Issuing CA 签名的 .pfx 证书(这些签名者会自动与 .pfx 一起导入) -个人证书标签重命名为 ibmwebspheremqqname

MQ 客户端: 我们有 6 台 Biztalk 服务器的集群 因此以相同的方式导入 .pfx 证书,由完全相同的机构颁发。 -个人证书标签重命名为 ibmwebspheremqserviceaccount(用于连接的服务帐户)

它应该可以工作,因为我已经在同一个 MQ 服务器和其他 MQ 客户端之间进行了这种通信。

感谢您的建议和帮助。 最好的问候,

水仙 V.

© www.soinside.com 2019 - 2024. All rights reserved.