iKeyman 个人证书丢失
iKeyman personal certificate dissapeared
我创建了证书请求并将此请求发布到权威机构,取回了签名证书。使用 iKeyman 我已经添加了所有签名者证书并成功地将签名证书接收到我的密钥数据库中。我看到添加个人证书时如何删除请求。我关闭了 iKeyman,当我再次打开它时,个人证书。不再列出?因为请求不再存在,所以我无法再次收到。我如何重新创建相同的请求,或者有任何其他方式将个人证书添加到我的密钥数据库。
2015 年 9 月 15 日评论更新
runmqakm -cert -list
显示证书列表
OS - Windows 服务器 2008 R2
IKeyman 版本 8.0.382.CMS 提供商版本 2.45.
执行所有操作的帐户是本地管理员。
我的输出:
C:\ProgramData\IBM\MQ\ssl>runmqakm -cert -list all -db key.kdb
5724-H72 (C) Copyright IBM Corp. 1994, 2014.
Source database password : ******
Certificates found
* default, - personal, ! trusted, # secret key
! XXX-Root-CA
! XXX-Intermediate-CA
! XXX-Issuing-CA
! ibmwebspheremqusapp1u
C:\ProgramData\IBM\MQ\ssl>runmqakm -certreq -list all -db key.kdb
5724-H72 (C) Copyright IBM Corp. 1994, 2014.
Source database password : ******
No certificate requests were found
你说得对,KDB 没有个人证书,也没有出色的 CSR。但是,如果带有标签 ibmwebspheremqusapp1u
的证书应该是个人证书,则它现在被加载为受信任的证书。无法按照所述从 KDB 恢复私钥,如果没有备份文件,该证书将无法恢复。您最多可以希望 CA 允许客户重新生成证书。
如果不发出 runmqakm -cert -add
就不可能达到此状态。预期的命令将是一个 runmqakm -cert -receive
,它将 CA 的响应与原始未完成的 CSR 结合起来,并创建一个完整的个人证书。要么已经完成,要么这不是创建该 CSR 的 KDB,因为正如您指出的那样,没有未完成的 CSR。
假设没有导致此问题的 GSKit 错误,并且这是创建 CSR 的同一个 KDB,那么在成功收到 CSR 后的某个时间点,个人证书被删除,并使用 CA 重新添加响应runmqakm -cert -add
。替代方案是 CSR 被明确删除(我猜如果是这种情况你会记得)或者 GSKit 有一个令人讨厌和危险的错误,你是迄今为止唯一发现的人。
从屏幕的这一边很难确定 GSKit 错误或用户错误,但是从您的角度来看,a) 防止这种情况再次发生是可能的; b) 可能做出最终决定。 "How do I do that," 你问?
一旦 KDB 或 JKS 中有私钥、CSR 或个人证书,在对其发出命令之前始终备份 KDB 或 JKS。您始终可以恢复受信任的证书,但私钥或包含私钥的任何东西都是独一无二且不可替代的。不要冒险对现有的唯一副本进行操作而丢失它。
例如,在提交 CSR 并收到 CA 的响应后,将 key.*
文件复制到 key.[timestamp].*
并将备份文件标记为只读,然后再收到 CSR in. 如果 receive
成功,那么你就可以开始了。如果不是,您可以将备份复制到损坏的 kdb 上,或复制到一组新的 kdb 文件中(永远不要对备份进行操作!)并尝试重现问题以确定它是错误还是用户错误。
具有出色 CSR 的备份 KDB 将始终让您回到创建 CSR 后的状态,因此您可以根据需要多次追溯您的步骤。如果您可以可靠地重现错误并认为这是一个 GSKit 错误,请打开 IBM 的 PMR。这是不太可能发生的情况,但我知道它会发生,因为我曾经发现一个 GSKit 错误,它会破坏整个密钥库。因此,我盲目地坚持更改前的备份策略。和你一样,我也学得很辛苦。
我创建了证书请求并将此请求发布到权威机构,取回了签名证书。使用 iKeyman 我已经添加了所有签名者证书并成功地将签名证书接收到我的密钥数据库中。我看到添加个人证书时如何删除请求。我关闭了 iKeyman,当我再次打开它时,个人证书。不再列出?因为请求不再存在,所以我无法再次收到。我如何重新创建相同的请求,或者有任何其他方式将个人证书添加到我的密钥数据库。
2015 年 9 月 15 日评论更新
runmqakm -cert -list
显示证书列表
OS - Windows 服务器 2008 R2
IKeyman 版本 8.0.382.CMS 提供商版本 2.45.
执行所有操作的帐户是本地管理员。
我的输出:
C:\ProgramData\IBM\MQ\ssl>runmqakm -cert -list all -db key.kdb
5724-H72 (C) Copyright IBM Corp. 1994, 2014.
Source database password : ******
Certificates found
* default, - personal, ! trusted, # secret key
! XXX-Root-CA
! XXX-Intermediate-CA
! XXX-Issuing-CA
! ibmwebspheremqusapp1u
C:\ProgramData\IBM\MQ\ssl>runmqakm -certreq -list all -db key.kdb
5724-H72 (C) Copyright IBM Corp. 1994, 2014.
Source database password : ******
No certificate requests were found
你说得对,KDB 没有个人证书,也没有出色的 CSR。但是,如果带有标签 ibmwebspheremqusapp1u
的证书应该是个人证书,则它现在被加载为受信任的证书。无法按照所述从 KDB 恢复私钥,如果没有备份文件,该证书将无法恢复。您最多可以希望 CA 允许客户重新生成证书。
如果不发出 runmqakm -cert -add
就不可能达到此状态。预期的命令将是一个 runmqakm -cert -receive
,它将 CA 的响应与原始未完成的 CSR 结合起来,并创建一个完整的个人证书。要么已经完成,要么这不是创建该 CSR 的 KDB,因为正如您指出的那样,没有未完成的 CSR。
假设没有导致此问题的 GSKit 错误,并且这是创建 CSR 的同一个 KDB,那么在成功收到 CSR 后的某个时间点,个人证书被删除,并使用 CA 重新添加响应runmqakm -cert -add
。替代方案是 CSR 被明确删除(我猜如果是这种情况你会记得)或者 GSKit 有一个令人讨厌和危险的错误,你是迄今为止唯一发现的人。
从屏幕的这一边很难确定 GSKit 错误或用户错误,但是从您的角度来看,a) 防止这种情况再次发生是可能的; b) 可能做出最终决定。 "How do I do that," 你问?
一旦 KDB 或 JKS 中有私钥、CSR 或个人证书,在对其发出命令之前始终备份 KDB 或 JKS。您始终可以恢复受信任的证书,但私钥或包含私钥的任何东西都是独一无二且不可替代的。不要冒险对现有的唯一副本进行操作而丢失它。
例如,在提交 CSR 并收到 CA 的响应后,将 key.*
文件复制到 key.[timestamp].*
并将备份文件标记为只读,然后再收到 CSR in. 如果 receive
成功,那么你就可以开始了。如果不是,您可以将备份复制到损坏的 kdb 上,或复制到一组新的 kdb 文件中(永远不要对备份进行操作!)并尝试重现问题以确定它是错误还是用户错误。
具有出色 CSR 的备份 KDB 将始终让您回到创建 CSR 后的状态,因此您可以根据需要多次追溯您的步骤。如果您可以可靠地重现错误并认为这是一个 GSKit 错误,请打开 IBM 的 PMR。这是不太可能发生的情况,但我知道它会发生,因为我曾经发现一个 GSKit 错误,它会破坏整个密钥库。因此,我盲目地坚持更改前的备份策略。和你一样,我也学得很辛苦。