微软代码签名证书使用指南
不同证书格式转换指南
从 双证书签名指南 和 单证书签名指南 可以看出:单证书的签名过程要比双证书的简单。所以,如果您想把双证书文件 .pvk 和 .spc 转换成一个 .pfx 格式证书文件,以简化签名过程和方便导入到 USB Key 中实现更加安全的签名管理,请参考本转换指南。而有些用户可能需要使用命令行方式来实现代码签名,即需要把 .pfx 格式签名证书文件转换成两个签名证书文件 .pvk 和 .spc ,也请参考本转换指南。
一、从 .pvk 和 .spc 格式转换成 .pfx 格式
(1) 下载微软的转换工具软件:pvkimprt.rar,并成功安装;
(2) 请确认您电脑上已经安装了颁发代码签名证书的中级根证书,如果没有,请先点击安装:
(3) 在 DOS 状态下,进入保存两个签名证书文件 mycert.pvk 和 mycert.spc 的目录,请键入命令:
pvkimprt mycert.spc mykey.pvk
按提示输入私钥密码后,启动证书导入过程,按几个回车就成功把证书导入到 Windows 证书存储区,在 IE 浏览器的 “工具” — “ Internet 选项” — “内容” — “证书” — “个人”中就能看到您的签名证书,再点击“导出”就可以得到包含有签名证书公钥和私钥的 .pfx 格式证书。
请注意:在导出时要选中“如果可能,将所有证书包括到证书路径中”,并建议选中“如果导出成功删除密钥”以防止被他人非法导出。如果还需要导入使用,则再导入即可,此时导入的缺省是“不允许导出私钥”,从而保证了签名证书的安全。
请注意: pvkimprt 工具不支持跨操作系统,也就是说,如果您是在 Windows 2000 操作系统上生成的私钥文件 .pvk 的,则只能在 Windows 2000 操作系统中使用 pvkimprt 工具。
您也可以利用此工具来修改签名证书私钥文件 .pvk 的密码,只需要从 .pfx 格式证书文件中分离出私钥文件 .pvk 和公钥文件 .spc ,请参考如下转换指南。
二、从 .pfx 格式转换成 .pvk 和 .spc 格式
1. 需要使用 OpenSSL 来实现格式转换,如果没有OpenSSL ,则需要 下载 和安装一个 OpenSSL Win32 包;
2. 从 PFX 格式文件中提取私钥中间格式文件 (.key),假设 OpenSSL 的安装目录为:
c:\program file\GnuWin32, PFX 格式文件目录:c:\cert\mycert.pfx ,在 DOS 状态下键入:
cd\Program Files\GnuWin32\bin
openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key
会提示输入 .pfx 证书文件的密码,就是您从 IE 导出 PFX 备份文件时设置的密码,输入密码后会提示“ MAC verified OK ”,表示提取成功。
3. 使用 pvk.exe 来把 .key 格式文件转换成 .pvk 格式, 下载 pvk.exe 到 c:\cert 目录,在 DOS 状态下键入:
pvk -in mycert.key -topvk -out mycert.pvk
会提示输入密码,和再次输入密码就完成转换。
4. 从 IE 中导出或下载 WoSign代码签名中级根证书 和 交叉签名根证书 和导出您的代码签名证书的公钥 mycert.cer ,导出时选择 Base64 编码格式。
5. 使用签名工具包中的 cert2spc.exe 生成软件发行证书 .spc 格式文件,下载 签名工具包,在 DOS 状态下键入:
cert2spc WS_CA1_xs_UTN-Obj.crt ca1_cs3.crt mycert.cer mycert.spc
会提示 Success ,表示 SPC 文件生成成功。
这样就成功从 mycert.pfx 中得到了 mycert.pvk 和 mycert.spc 文件,实现了从 .pfx 格式证书文到 .pvk 和 .spc 格式证书文件的转换。