安装在应用服务器上的IBM MQ . net客户端要使用的证书名称
本文关键字:证书 客户端 net 应用服务器 IBM MQ 安装 | 更新日期: 2023-09-27 18:12:16
我正在使用安装在应用服务器上的IBM MQ WebSphere客户端v 7.5。
要安全地连接到MQ队列管理器,我必须传递证书,其名称应该是ibmwebspheremq + "userid"。我将代码放在APP SERVER上以测试MQ连通性。如果我指定域用户id,它可以为我工作,但不是为其他域用户。那么应该使用什么证书名称,以便它适用于所有域用户?
证书标签:ibmwebspeheremq。KDB位于本地路径
证书名称:使用strmqikm.exe,打开上面的证书并检查名称到目前为止,这个CN是"ibmwebspheremq"+ 111111(域用户id),它对域用户111111工作正常,但对于域用户222222,它抛出SSL错误。
注:必须维护安全
2015年9月11日OP评论更新
我正在使用。net应用程序,并通过IBM的帮助完成代码。WMQ接口提供了dll amqmdnet
。我有KDB证书,我刚刚在配置中提供了本地证书的路径。我能够在APP服务器(MQ客户端驻留的地方)上访问特定用户的MQ服务器,但如果我想访问所有用户,那么如何访问?因为在我的情况下,证书标签名称(使用strmqikm.exe)应该像ibmwebspheremq + userid。对于个人用户,我能够通过个人登录到应用程序服务器访问证书,但不是所有用户一次。只有一个证书,如前所述,它是非java应用程序。
MQ客户机要么使用IBM的C代码,要么使用Java和JRE的JSSE提供程序。每一个都有不同的行为和需求。
Java EE应用服务器将使用JSSE提供者及其规则从JKS中选择个人证书。这可能包括也可能不包括搜索特定的标签。任何使用IBM编译的C代码API 的内容都将要求为KDB中的个人证书提供特定的标签。此外,正如IBM的Technote 中所解释的那样,在MQ客户机的SSL证书标签中指定用户id 。
如Technote中所述,Java客户机使用标准Java方法查找个人证书,完全不依赖于标签。对于非java客户机,该需求仅为。App服务器使用JKS,非java客户端使用KDB。由于您没有提到在JKS和KDB之间转换证书,我将假设您的测试人员没有使用C客户机或KDB。
那么,你的测试人员可能使用与应用服务器相同的JKS。如果他们有正确的路径和密码来访问它,如果它有一个个人证书,他们将能够找到并呈现个人证书。如果它有多个个人证书,MQ无法控制它如何选择它将呈现哪一个。这是Java的事情。如果是这个问题,答案很简单——要么使用一个个人证书和一个密钥库,要么每个测试人员都有自己的JKS,每个测试人员都有自己的个人证书。
必须维护安全
在这种情况下,首选后一种方法。每个测试人员应该有自己的JKS和自己的个人证书。
另一种可能性是,您有各种各样的证书,每个证书都被客户端找到并正确地呈现给服务器,但是存在证书交换问题。如果每个开发人员都有自己的证书,并且都是自签名的,那么公共部分必须在QMgr的KDB中才能被接受。
如果你想要一个更精确的答案,你需要提供很多更多的细节,比如测试人员使用什么代码、密钥库和证书进行测试,这些证书是否是自签名证书,测试人员是否使用相同的应用程序通道并从相同的节点进行测试,你是否使用SSLCAUTH
,等等。我还建议使用我在这个回答中概述的调试过程。
MQ v7.5 c#客户端内部调用MQ C客户端建立到队列管理器的安全连接。登录用户id用于制作ibmwebspheremq<userid>
证书标签,并从KDB中选择正确的客户端证书。因此,对于@Dirty Developer,当用户在KDB中存在带有其用户id后缀的标签的证书时,该应用程序正在连接。
从MQ v8开始,不需要证书标签总是以userid为后缀。MQ v8提供了一个CertificateLabel属性,应用程序可以使用该属性指定任何证书标签。MQ客户机将使用证书标签来定位在SSL握手期间发送的个人证书。在MQ v8 . net客户端中,此属性被命名为MQEnvironment.CertificateLabel
。这里有更多关于MQ v8中的证书标签的信息。
我花了这么多时间研究,终于有了答案!!
1)不可能每次都为每个想在服务器上使用MQ的用户更改证书名称。2)我们必须找到适合所有用户的证书名称(这是我的问题?:))和方法来合并这些更改。
实际流程:
3)我开发了一个代码来连接到WCF服务中的MQ,并在IIS上托管该服务
4)对于服务器上的IIS用户,我有服务帐户,我与证书标签绑定,即ibmwebspheremq +
5)所有想要连接的客户端都必须调用我在IIS服务器和volla !!!!!!上部署的服务它工作。
6)您必须将该服务帐户绑定到您的角色/域用户id
7)注意:在服务器上,您必须为服务帐户提供访问IBM文件夹的权限。