在IIS7中以DefaultAppPool的身份运行时,Websphere MQ访问SSL证书?

问题描述:

我有一个C#Web服务,它使用DefaultAppPool用户作为应用程序标识(IIS APPPOOL \ DefaultAppPool)在Windows Server 2008 R2上的IIS 7.5下运行。 Web服务使用IBM Websphere MQ(7.0.1.2)来完成它的工作,并通过IBM KeyMan实用程序使用存储在key.kdb设置中的SSL证书。在IIS7中以DefaultAppPool的身份运行时,Websphere MQ访问SSL证书?

通常情况下(对于未运行IIS C#应用程序),我需要在KDB中标注的个人证书,这样它的名字正在运行的应用程序,即该证书将被标记为ibmwebspheremqbs6mjb用户匹配(见http://www-01.ibm.com/support/docview.wss?uid=swg21245474)和这允许应用程序成功访问key.kdb中的SSL证书。

但是,当作为Web服务运行并命名证书ibmwebspheremqdefaultapppool时,应用程序无法访问SSL证书。如果我将AppPool标识更改为bs6mjb,那么一切正常(我不允许将该应用程序池作为bs6mjb运行)。

我不希望像上面的链接中提到的那样设置默认证书,是否有人知道证书应该标记为与DefaultAppPool一起工作?

+0

您可以描述使用'ibmwebspheremqdefaultapppool'时获得的错误吗? – Shashi 2012-07-13 08:17:05

+0

Web服务无法连接并给出MQRC_SSL_INITIALIZATION_ERROR,但此时不在我的计算机前面,但是从内存中看,这是一个2393错误 – bs6mjb 2012-07-16 20:31:07

对于MQ客户端,证书标签必须具有运行客户端的用户名。在你的情况下,例如ibmwebspheremqbs6mjb。如果证书标签是其他内容,则MQ客户端(实际上是GSKit库)将找不到要连接到队列管理器的证书。我想这就是当你的标签为ibmwebspheremqdefaultapppool时发生的情况。

这个blog有有趣和有用的细节。您可能需要检查IIS用户运行的用户名,并为该用户创建证书,并在客户端和MQ队列管理器之间执行所需的SSL设置。

+0

因此...它不是我需要的defaultapppool - 我的默认应用程序池实际上正在运行作为ASP.NET v4.0,所以我需要命名证书“ibmwebspheremqasp.net v4.0”(注意空间!) – bs6mjb 2013-05-09 10:02:49