以下内容摘自笔者编著的《网管员必读――网络安全》(第2版)。
9.4.7 执行密钥恢复示例
本节介绍使用
Certutil.exe
命令来对前面创建的
Alice
用户存档证书进行密钥恢复。这需要由域系统管理员在域控制器上执行以下步骤。
|
证书模板必须第
9.3.4
节介绍的方法修改了,“存档位”和“将私钥标记为可导出”属性已启用。只有在“存档的密钥”列中有数据的情况下私钥才可恢复。
|
1.查看“证书颁发机构”控制台中的“存档密钥”,确保私钥仍可恢复
(
1
)执行【开始】→【管理工具】→【证书颁发机构】菜单操作,打开“证书颁发机构”控制台窗口,如图
9-65
所示。
图9-65 在“证书”控制台中显示的新“存档用户”证书
(
2
)在控制台中选择“颁发的证书”选项,执行【查看】→【添加
/
删除列】菜单操作,打开如图
9-66
所示对话框。
(
3
)在“添加
/
删除列”对话框的“可用列”列表中选择“存档的密钥”选项,然后单击【添加】按钮,把“存档的密钥”添加到“显示列”列表中。
(
4
)单击【确定】按钮返回到证书颁发机构中的“颁发的证书”项,然后在详细信息窗格中,向右滚动,并确认上次颁发给
Alice
的证书的“存档的密钥”列中的值“是”。
(
5
)双击“存档用户”证书,在打开的对话框中选择“详细信息”选项卡,如图
9-67
所示。记下证书的序列号(不要包括两个数字之间的空格),这是进行恢复所必需的。序列号是长度为
20
个字符的十六进制位字符串。私钥的序列号与证书的序列号相同。为了避免在下列的操作中输入真正的
20
位序列号,所以在此示例中序列号被称为
serialnumber
。
图
9-66
“添加
/
删除列”对话框
图
9-67
查看证书序列号
(
6
)单击【确定】按钮返回到证收颁发机构,然后关闭“证书颁发机构”控制台。
2.使用Certutil.exe将私钥恢复到私钥输出文件
(
1
)进入命令提示符状态,并确保当前路径为
c:\
。
(
2
)在命令提示符下,键入:
Certutil -getkey serialnumber outputblob
。这里的
serialnumber
就是上面记下的那
20
位序列号(不带空格)。
(
3
)在命令提示符下,键入
dir outputblob
,列出
outputblob
文件。
以上的
outputblob
文件也是一个文件示例,也可以是其他任意文件名。如用
aliceerp
文件,也可执行以上命令,而且结果一样。
如果在执行完
dir outputblob
命令后,仍见不到
文件
outputblob
,则键入的证书序列号可能不正确。
outputblob
文件是包含
KRA
(密钥恢复代理)证书、用户证书和
PKCS#7
文件。内部内容是包含私钥(被加密为
KRA
证书)的加密
PKCS#7
。
3.使用Certutil.exe命令恢复原始公/私钥对
(
1
)同样,进入命令提示符状态,在命令提示符下,键入:
Certutil -recoverkey outputblob alice.pfx #
其中的
outputblob
文件是对应
9.4.6节
所用的私钥输出文件,如果输出文件名不一样,则需作相应修改,如前面例举的
aliceerp
。
alice.pfx
为公
/
私钥对文件,当然文件名也可以是其他的,但扩展名不能改变。
(
2
)当系统给出要输入密码的提示时,则输入新密码,并确认新密码。
(
3
)键入“
exit
”
命令,然后按【
Enter
】键,关闭所有窗口并注销当前用户。