【问题标题】:Can we reuse WebSphere MQ TLS/SSL certificate?我们可以重用 WebSphere MQ TLS/SSL 证书吗?
【发布时间】:2017-04-13 17:07:49
【问题描述】:

假设,我在 host1 中使用队列管理器 QMGR1 创建 CSR 并获得标有 ibmwebspheremqqmgr1 的 CA 验证证书。我可以在另一个主机 host2 中使用加载相同的证书(以及它的根链和中间链)来管理名为相同的队列(即 QMGR1)吗?换句话说,当我们使用 rumqakm '接收' 证书时需要存在 certreq 还是不存在?我们可以“添加”一个证书(就像我们做链一样)吗?如果问题不清楚,请询问,我可以提供更多详细信息。在我的情况下 host2 是生产。 host1 是我们测试连通性的 QA 环境。谢谢。

更新来自 cmets 26DEC16 的问题
具体到 MQ,我相信我必须先在 host2 上加载 CSR,然后再次接收 CER,对吗?我想知道如何在不创建 CSR 的情况下“加载”它。我在 runmqakm 中看到了一个重新创建它的选项,以前从未使用过,也不确定这是否可行。

【问题讨论】:

  • 在 ServerFault 上查看这个问题:serverfault.com/q/481068/349846
  • @XSurgent 对我来说看起来不错。我相信这有点回答了我的问题。我可以在另一个上重复使用 CSR、CA 认证的 CER。具体到 MQ,我相信我必须先在 host2 上加载 CSR,然后再次接收 CER,对吗?我想知道如何在不创建 CSR 的情况下“加载”它。我在 runmqakm 中看到了一个重新创建它的选项,以前从未使用过,也不确定这是否可行。

标签: ssl certificate ibm-mq mq


【解决方案1】:

TL;DR:是的。

当您使用 IBM GSKit(例如 runmqakm)创建 CSR 时,结果是未签名的证书和 CSR 文件本身。 CSR 以加密方式绑定到保留在密钥库的.rdb 文件中的未签名证书。那时,签名的 CSR 不能被接收到任何密钥库中。

当您收到签名的 CSR 时,它会与待处理的未签名证书合并并移动到密钥库的 .kbd 文件中。此时,它是一个有效的个人证书,带有您指定的标签名称(在本例中为ibmwebspheremqqmgr1)和您指定的 DN。

完成后,您将拥有一个可用的个人证书。如果您想在另一个 QMgr 上使用它,您需要通过以下两种方式之一将该证书发送给另一个 QMgr:

  • 复制构成密钥库的文件集。
  • 将个人证书导出到文件中,然后将该文件导入到其他 QMgr 的密钥库中。

如果您复制了整个密钥库并且另一个 QMgr 也被命名为 QMGR1,那么您可以立即使用它们。如果另一个 QMgr 具有不同的名称,那么您必须将证书重命名为 ibmwebspheremqqmgr1 以外的名称,或者在现代 QMgr 中将 QMgr 的 CERTLABL 属性设置为 ibmwebspheremqqmgr1。通常,您希望 cert 标签反映使用它的 QMgr 的名称,因此不建议使用名为 QMGR2CERTLABLibmwebspheremqqmgr1 的 QMgr。

如果您导入证书,那么您可以在导入命令期间设置标签。

请记住,标签和专有名称是两个完全不同且不相关的东西。专有名称是 CA 验证和签署的值,并以加密方式绑定到证书中的密钥。这是远程连接伙伴决定是否信任的事情。

标签是本地 QMgr 或客户端如何找到自己的证书。假设您创建了两个个人证书,QMgr 需要知道要发送哪一个。它通过将证书的标签与ibmwebspheremq[qmgr name in lower case] 的预期值相匹配或与 QMgr 的CERTLABL 属性(如果它不为空)匹配来找到正确的标签。

这就是为什么可以使用 GSKit 命令轻松更改证书标签但专有名称不可变的原因。

考虑到这一点,请注意,外部和许多内部 CA 将期望证书的证书公用名包含将使用证书的完全限定主机名。 HTTPS 客户端在连接时检查证书 CN 是否与主机名匹配。对于 MQ 连接,情况并非如此。您可以在 CN 中放入 CA 将签署的任何内容,并将其用于任意名称的 QMgr。所以你的证书可以有 CN=QMGR1 并且 QMgr 可以存在于 mqhost.yourcompany.com 上,并且 MQ 很喜欢它。但是,使用新 MQ REST API 的客户端不会!对于希望使用新 MQ REST API 的人来说,这是一个重要的区别。

最后,请注意,最佳做法是在将要使用它们的地方生成证书,使用文件系统权限保护它们,将它们保存在本地存储中,并且永远不要从该位置复制或移动它们。发明公钥/私钥加密是为了解决安全交换私钥的非常困难的问题。如果个人证书被复制,它首先会破坏使用它们的目的。

各种商业 PKI 软件包(即 IBM Tivoli Key Lifecycle Manager、Venafi 等)都使用 FIPS 认证的算法解决了这个问题,这些算法不在磁盘上存储密钥或加密原语,在释放内存空间之前安全地擦除内存空间,并且通常要格外小心,不要让密钥在传输、磁盘或内存中不受保护。如果您必须复制个人证书,请使用为该目的设计的真实 PKI 包(如果公司有)。否则,请将它们导出到 .p12,并使用非常长且随机的密码,并避免使用电子邮件、FTP 或其他不安全的方式复制文件。

【讨论】:

  • 非常感谢@T.Rob。你帮我解决了很多 MQ 问题。
  • 很高兴它有帮助!
猜你喜欢
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-17
  • 2012-09-24
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多