微软代码签名证书使用指南(SignCode)
【新版点击】:微软代码签名证书使用指南:单证书文件(.pfx)签名指南
【新版点击】:微软代码签名证书使用指南:双证书文件(.pvk/.spc)签名指南
【新版点击】:不同证书格式转换指南
重要告示:任何证书拥有者都不得使用其购买的代码签名证书为间谍软件、流氓软件、黑客软件等恶意软件和盗版软件进行数字签名,也不得在违反国家有关法律法规的网站上使用,否则,一经用户举报和查实,WoSign可以立刻吊销此证书,不但不退款,而且还会配合有关部门追究可能由此带来的一切法律责任。
本使用指南是指如何使用 WoSign微软代码签名证书(.pfx格式)来给Windows平台代码签名,签名工具为支持图形化界面签名的老版本签名工具SignCode.exe。如果您希望使用签名工具软件SignTool.exe签名(仅支持DOS命令符方式签名),并请参考 SignTool签名指南。
考虑到微软的代码签名软件 SignCode.exe 的缺省的“典型”签名类型,就是“从存储区选择”签名证书,同时由于微软的 Office 宏代码签名只支持同时包含了私钥和公钥的 PFX 格式签名证书,也就是直接“从存储区选择”签名证书。同时考虑到针对DOS设计的双证书文件(.pvk和.spc)使用不方便,而容易丢失, 所以, WoSign新证书申请系统仅支持保存在证书存储处方式。而证书存储区可以是 Windows 操作系统的证书存储区,也可以把 USB Key 作为证书存储区 ,用户可以从 Windows 的证书存储区导出备份签名证书,导出的证书格式为 PFX 格式。
请注意:如果您使用WoSign微软代码签名证书的PFX格式证书签名的电脑不是申请证书时的同一台电脑,则请确保您的电脑上一定已经安装了颁发 WoSign 代码签名证书的中级根证书: WoSign Class 3 Code Signing CA 和 交叉签名根证书(会在申请证书的电脑上自动安装,此中级根证书和交叉签名根证书只是要求签名操作电脑上有就可以了,并不要求最终用户电脑上有,请不要搞混淆!)。
使用微软的 SignCode.exe 就可以对微软的代码进行签名,如果您没有此文件,您可以点击 这里 下载。 Signcode.exe 可以使用 DOS 命令行方式实现签名,我们推荐用户使用数字签名向导方式,简单方便。请注意:如果您开发的ActiveX为IE加载项,请先数字签名每个CAB文件中的.dll和.ocx等文件,再把这些文件打包成.cab文件后再数字签名.cab文件,以确保所有IE加载项都被IE验证和信任,否则会显示“未验证”而可能影响正常运行。
具体签名向导过程如下:
(1) 运行 Signcode.exe ,要求您选择需要签名的文件,支持:可执行文件 (*.exe; *.dll; *.ocx) ; Cabinet 打包文件 (*.cab) 和目录文件 (*.cat) ,如下图 1 所示 ( 如: TestSign.cab) ,请注意:如果签名的文件已经有数字签名,则会被新的签名覆盖:
(2) 点击“下一步”后,如下图 2 所示,会要求您选择“签名类型”,• 直接点击“下一步”即可,即选择缺省的“典型”签名类型:
(3) 如下图 3 所示,点击“从存储区选择”,则会显示您的电脑证书存储区的所有证书,包括存储在电脑和 USB Key 中的所有数字证书,选择您的签名证书即可:
(4) 如下图 4 所示,要求填写该签名代码的功能描述,推荐一定要认真填写,因为此信息将会在最终用户下载此代码时显示,有助于最终用户了解此代码的功能以确定是否下载安装。第一行“描述”是指此代码的功能文字描述,第二行“ Web 位置”则让最终用户点击文字描述来详细了解此代码的功能和使用方法等,本演示中的“ Web 位置”为WoSign代码签名证书简介页面:
请注意:根据微软要求:可选项“功能描述”和“ Web 位置”必须填写准确和必须指向证书签名单位网站上有关此软件的介绍页面,如果发现有误导最终用户描述和不正确的 Web 位置,则WoSign有权要求证书拥有者及时更正和更新,否则有权吊销此证书而且不退款。
(5) 点击“下一步”后,如下图 9 所示,选中“将时间戳添加到数据中”,请使用:
WoSign 免费提供的时间戳服务URL: http://timestamp.digicert.com
时间戳服务非常重要,添加时间戳后,即使您的代码签名证书已经过期,但由于您的代码是在证书有效期内签名的,则时间戳服务保证了此代码仍然可信,最终用户仍然可以放心下载,使得即使代码签名证书已经过期,您也无需重签已经签名的代码。
(6) 点击“下一步”后,如下图 6 所示,会提示已经完成数字签名向导,点击“完成”就完成了中文版代码签名证书的代码签名。
(7) 现在,需要使用 chktrust.exe 来查验已经签名的代码, chktrust.exe 文件已经打包在 signcode.rar 中。进入 DOS 命令提示符,并进入已经签名的文件所在目录 ( 如: d:\sign\TestSign.cab) ,键入命令: chktrust testsign.cab ,则会显示实际应用时在 IE 浏览器下载页面的情况,如下图 11 所示,对于Win XP操作系统,会显示软件名称和发行者名称,其中软件名称就是您在第(8)步输入的描述,点击此名称就链接到您在第(8)步填写的网址,而点击发行者名称,则会显示您的签名信息和时间戳信息。对于Win2000 操作系统,则稍有不同,第 1 行的红线部分就是时间戳记录的签名时的本地时间,请注意:此时间不是取签名电脑的时间,而是 WoSign提供时间戳服务的服务器计算出来的签名电脑设置的所在时区的本地时间。第 1 行蓝色文字就是在第 8 步中输入的描述文字,点击此蓝色文字就可以访问在第 8 步中输入的 Web 描述页面。第 2 行蓝色文字则为该代码的发行者,也就是代码签名证书的申请者 ( 拥有者 )( 如:沃通电子认证服务有限公司) ,点击可以查看证书的详细信息;第 2 行有红色下划线部分显示“发行商可靠性由 WoSign Code Signing Authority 验证 ”就是此代码签名证书的证书颁发者。
(8) 点击“是”或“运行”,则会提示“ TestSign.cab: Succeeded ”表示代码 TestSign.cab 签名验证有效,可以放到网站上了。请注意:签名后的CAB文件放到网站上需要使用 object 方式。
请注意:不能仅签名CAB文件,CAB包中所有DLL文件都要先签名后再打包,再签名CAB文件,否则IE浏览器会显示为“未验证的发行者”而影响正常使用,甚至杀毒软件会认为是毒而被删除!如下图所示的实际案例: