续订队列管理器的证书

时间:2015-09-07 13:58:46

标签: ibm-mq mq

我们的一个队列管理器证书即将到期,有人建议更新它比更换旧证书要便宜得多。以下是我们遵循的以下步骤(通过IBM密钥管理):

  1. 选择个人证书并选择重新创建 - Renewal.csr
  2. 将Renewal.csr发送给CA以获取COMODO证书 - RenewedComodo
  3. 选择个人证书,然后选择接收以导入RenewedComodo。 (刷新安全性)
  4. 创建新证书时,我们选择个人证书申请并选择新证书。这是第一步。我们遵循2步和3步。

    这是我的查询,除了选择重新创建之外,我没有设置任何差异。

    1. 当我有两个证书作为RenewalCOMODO和oldCOMODO时,队列管理器如何知道哪个是正义的。

    2. 如果选择哪个未过期,是否在数据库中过期?

    3. 如果我们需要删除旧版本,在添加续订版本后,如何更换证书?

1 个答案:

答案 0 :(得分:1)

在获得答案之前,这需要一些背景知识。

当您最初创建CSR时,您实际获得的是公钥/私钥对以及证书签名请求或“CSR”。 CSR包含公钥和请求的属性,例如可分辨名称。 CSR使用您的私钥进行签名,以便任何收件人都可以使用嵌入式公钥来验证CSR和请求的属性是否未被篡改。

不太为人所知的是,CA不一定要应用CSR中提供的所有属性。例如,如果购买的证书是域验证证书,并且CSR包含OU字段的值,则CA将只删除它们,只留下DN和SAN字段以及它们自己的信息。因此,您获得的证书可能具有与原始CSR不同的字段。

从正在使用的证书重新创建CSR时,会再次发生相同的过程,但新CSR会反映CA最初所做的任何更改。仔细检查原始CSR和新生成的CSR通常会显示SAN中的差异或已将电子邮件联系人添加到DN中。然而,从CA的角度来看,这些差异是美化的。

考虑到这一点,让我们再看看问题。

  

当我有两个证书作为RenewalCOMODO和oldCOMODO时,队列管理器如何知道哪个是正确的?

假设您正在讨论CA在响应原始和续订CSR后提供的工件,QMgr不知道哪个是哪个。您可以在任一个上运行%a命令,并且假设它们都由同一个CA签名并使用相同的签名者链,则它们都可以工作。

管理员有责任验证是否安装了正确的证书。

  

如果选择哪个未过期,它是否会在数据库中过期?

没有。每个成功的receive命令都会保留个人证书的私有部分并替换公共部分。该标签与私有部分相关联,并检查其唯一性,因此您不能(或者至少 ,如果没有错误),可以在同一个KDB中拥有两个副本。

  

如果我们需要删除旧版本,在添加续订版本之后,它将如何与更换证书不同?

确保您收到正确的证书。始终执行receive命令或使用GUI检查证书。

其他建议:

  • 在开始工作之前,请务必复制KDB。
  • 将您的CSR和证书的副本保存在KDB目录中。
  • 我喜欢在文件名中使用时间戳,因此很明显历史记录是什么。我的文件名都以YYYYMMDD开头,例如runmqakm -cert -details20150908_QMName_CSR.arm
  • 确保证书文件,KDB和拥有它们的目录的文件权限设置为拒绝MQM服务帐户以外的任何人访问。如果这不可能,请允许组访问,但要确保mqm组的成员尽可能少。 任何可以阅读证书的人都可以使用它们。没有必要知道KDB的密码以使用它包含的证书
  • 执行维护时,我喜欢制作KDB的新副本(如前所述,带有带时间戳的文件名),当我确定它已准备就绪时,我将QMgr的20150908_QMName_CSR_signed.arm属性更改为指向它。然后,我将旧文件更改为只读,并在QMgr上发出SSLKEYR
  • 始终记住在QMgr上发布RESET SECURITY TYPE(SSL)。这是一个相当破坏性的命令,所以尽量不要在QMgr繁忙时发出它。它将要求所有通道关闭,许多重新连接尝试将阻止它快速完成。