gpt4 book ai didi

ssl - SSL使用.net mq客户端SSLV3连接到MQ?

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:21 26 4
gpt4 key购买 nike

目前,由于以下问题,我在连接服务器时遇到问题:

当我尝试连接到服务器时,它返回错误:MQRC_SSL_INITIALIZATION_ERROR

通过WireShark进行仔细分析后,我发现客户端正在尝试使用SSL v2连接到服务器,而服务器只能接受SSL V3,从而拒绝了连接。

我检查了该文档,但无法找到有关的任何信息
.Net客户端支持什么SSL版本。

我想检查SSL版本是否由.Net MQ控制
客户端,如果可以,我们如何配置以使其通过SSL v3连接?

谢谢。

最佳答案

我不确定我是否同意您的结论,因为WMQ已支持SSL V3.0和TLS V1.0 since at least V6.0以及更早的版本。这很可能是客户端和服务器之间的配置不匹配。我建议解决SSL / TLS问题的过程如下:

我在WMQ上调试SSL连接的方法是按照以下顺序进行,确保在前进到下一个步骤之前,每个步骤都可以正常工作:


使通道在没有SSL的情况下运行。这可验证通道名称是否正确拼写,端点之间存在网络路由,QMgr的侦听器正在运行以及客户端指向正确的端口。您会惊讶于某人误输入端口或通道名称的次数。
使通道在SVRCONN定义设置为SSLCAUTH(OPTIONAL)的情况下运行。这将执行类似于您的浏览器的匿名SSL连接。 QMgr向客户端出示证书,但是客户端没有义务将证书发回。这验证了QMgr可以找到其证书,并且客户端可以找到其信任库并正确地验证了QMgr的证书。 (注意:QMgr将始终请求客户机证书,并且如果存在证书,客户机将始终发送该证书。要执行此测试,请使用客户机密钥库的副本,该副本具有签名者证书,而不使用应用程序的个人证书。复制密钥库并从副本中删除个人证书。请勿删除原始证书!)
将SVRCONN通道设置为SSLCAUTH(REQUIRED)。现在,这要求客户端找到其密钥库(在最后一步中,它仅需要其信任库)并能够找到其证书。它还要求QMgr能够验证客户的证书。
设置SSLPEER或CHLAUTH映射规则以缩小将在通道上接受的已验证证书的数量。


步骤#2和#3之间的差异通过一次仅在一个方向上测试SSL凭据交换来帮助隔离问题。这使您可以确定问题是存在于个人证书还是公共证书中以及通道的哪一侧。这两个步骤几乎解决了所有问题。

更新
回答问题的注释。 SSL / TLS使用两种类型的证书。个人证书包含私钥,并且是不会被传递的证书。公共证书是包含公共密钥的证书,可以免费颁发。私钥保存在密钥库中。公钥(通常是CA的根证书和中间证书)存储在信任库中。在某些情况下,这些是单独的文件。例如,在Java和JMS中,JSSE提供程序在环境中查找指向密钥库和信任库的变量。在Java和JMS中,密钥库和信任库变量可能指向同一文件。

对于Java以外的WebSphere MQ服务器和客户端,将密钥库和信任库合并到一个位置。通常称为kdb文件,它实际上是CMS密钥数据库,由几个文件组成,其中一个文件是KDB。在这种情况下,“密钥库”实际上是组合的密钥库和信任库的简写。对于.Net客户端,在MQEnviornment中设置密钥库位置和其他SSL属性。

在SSL / TLS握手中,服务器总是发送其公共证书以响应连接请求。然后,客户端必须通过首先检查签名和有效日期,然后在其信任库中查找对证书进行签名的事物来验证该证书。如果对证书进行签名的事物是中间签名者证书(它本身已经由某人签名),则搜索将继续在签名者证书链上进行,直到到达根证书为止。假设服务器已通过身份验证,则通过使客户端出示证书并由服务器对其进行验证来反向应用相同的过程。

当该过程在步骤2中失败时,我们可以使用上述过程的知识进行调试。 QMgr必须首先在其密钥库中找到其证书,并将其提交给客户端。如果QMgr找不到其证书,则结果是AMQERR01.LOG文件中指出此错误。在第2步中出现问题时,请始终首先关注QMgr!

如果QMgr确实找到其证书,则下一步是客户端必须能够找到其信任库,然后在该信任库内必须找到必要的签名者证书链。如果失败,则客户端应有错误表明这一点。例如,设置客户端环境时的常见错误是指定整个文件名,包括.kdb扩展名。发生这种情况时,QMgr查找不存在的[keystorename].kdb.kdb。另一个常见错误是个人证书存在于密钥库中,但标签错误。非Java WMQ客户端按标签名称查找证书,该标签名称由文字字符串ibmwebspheremq和小写的用户ID构成。例如,如果我的用户ID是TRob,那么我的证书标签将是ibmwebspheremqtrob。请注意,这是密钥库中证书的标签,而不是证书的“通用名称”或“专有名称”中的其他字段。

根据使用的客户端类型,这些可能在Windows错误日志,本地MQ错误日志或其他位置。如果找不到客户端错误,也可以选择WMQ tracing

关于ssl - SSL使用.net mq客户端SSLV3连接到MQ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12907472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com