Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们可以重用WebSphere MQ TLS/SSL证书吗?_Ssl_Certificate_Ibm Mq_Mq - Fatal编程技术网

我们可以重用WebSphere MQ TLS/SSL证书吗?

我们可以重用WebSphere MQ TLS/SSL证书吗?,ssl,certificate,ibm-mq,mq,Ssl,Certificate,Ibm Mq,Mq,比如说,我在host1中使用队列管理器QMGR1创建了一个CSR,并获得了一个标记为ibmwebspheremqqmgr1的CA验证证书。我是否可以在另一个主机host2中为一个名为same(即QMGR1)的队列加载相同的证书(及其根链和中间链)?换句话说,当我们使用rumqakm或no“接收”证书时,certreq需要存在?我们是否可以“添加”证书(就像我们添加链一样)?如果问题不清楚,请提问,我可以提供更多细节。在我的例子中,host2是生产。host1是一个QA环境,我们在其中测试连接性。

比如说,我在host1中使用队列管理器QMGR1创建了一个CSR,并获得了一个标记为ibmwebspheremqqmgr1的CA验证证书。我是否可以在另一个主机host2中为一个名为same(即QMGR1)的队列加载相同的证书(及其根链和中间链)?换句话说,当我们使用rumqakm或no“接收”证书时,certreq需要存在?我们是否可以“添加”证书(就像我们添加链一样)?如果问题不清楚,请提问,我可以提供更多细节。在我的例子中,host2是生产。host1是一个QA环境,我们在其中测试连接性。谢谢

更新2016年12月26日评论中的问题 具体到MQ,我相信我必须首先在host2上加载CSR,然后再次接收CER,对吗?我想知道如何在不创建CSR的情况下“加载”CSR。我看到了一个在runmqakm中重新创建它的选项,以前从未使用过,也不确定这是否会起作用;医生:是的

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

当您收到已签名的CSR时,它将与挂起的未签名证书组合,并移动到密钥库的
.kbd
文件中。此时,它是一个有效的个人证书,具有您指定的标签名(
ibmwebspheremqqmgr1
,在本例中)和您指定的DN

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

  • 复制组成密钥库的文件集
  • 将个人证书导出到一个文件,然后将该文件导入另一个QMgr的密钥库
如果复制了整个密钥库,而另一个QMgr也被命名为
QMGR1
,则可以立即使用它们。如果另一个QMgr具有不同的名称,则必须将证书重命名为除
ibmwebspheremqqmgr1
之外的其他名称,或者在现代QMgr中,将QMgr的
CERTLABL
属性设置为
ibmwebspheremqqmgr1
。通常,您希望证书标签反映使用它的QMgr的名称,因此不建议使用名为
QMGR2
CERTLABL
ibmwebspheremqqmgr1
的QMgr

如果导入证书,则可以在导入命令期间设置标签

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

标签是本地QMgr或客户端查找自己证书的方式。假设您创建了两个个人证书,QMgr需要知道要发送哪一个。它通过将证书的标签与
ibmwebspheremq[qmgr名称小写]
的预期值匹配,或者与qmgr的
CERTLABL
属性匹配(如果该属性不是空的话),来找到正确的证书

这就是为什么可以使用GSKit命令轻松更改证书标签,但可分辨名称是不可变的

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

最后,请注意,最佳做法是在使用证书的位置生成证书,使用文件系统权限对其进行保护,将其保存在本地存储中,并且从不从该位置复制或移动证书。公钥/私钥密码是为了解决私钥安全交换的难题而发明的。如果个人证书被复制,那么首先就无法达到使用这些证书的目的

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

TL;医生:是的

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

当您收到已签名的CSR时,它将与挂起的未签名证书组合,并移动到密钥库的
.kbd
文件中。此时,它是一个有效的个人证书,具有您指定的标签名(
ibmwebspheremqqmgr1
,在本例中)和您指定的DN

完成后,您将拥有一份可用的个人证书