2

我有一个 C# Web 服务,它在 Windows Server 2008 R2 上的 IIS 7.5 下运行,使用 DefaultAppPool 用户作为应用程序标识(IIS APPPOOL\DefaultAppPool)。Web 服务使用 IBM Websphere MQ (7.0.1.2) 来完成它的工作,并通过 IBM 的 KeyMan 实用程序使用存储在 key.kdb 设置中的 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 一起使用吗?

4

1 回答 1

0

对于 MQ 客户端,证书标签必须具有运行客户端的用户名。在您的情况下,例如ibmwebspheremqbs6mjb. 如果证书标签是别的东西,MQ 客户端(实际上是 GSKit 库)将找不到证书以连接到队列管理器。我认为当您将标签设置为ibmwebspheremqdefaultapppool.

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

于 2012-07-21T16:11:55.827 回答