EV增强型代码签名证书除了验证企业名称之外还需要对企业营业地址、经营类型进行验证,支持Windows10内核模式软件签名,注意:微软自2015年10月31日起Windows10内核驱动签名都要提交EV代码签名凭证。使用EV增强型代码签名证书给软件签名具体如下:
EV增强型代码签名证书除了验证企业名称之外还需要对企业营业地址、经营类型进行验证,支持Windows10内核模式软件签名,注意:微软自2015年10月31日起Windows10内核驱动签名都要提交EV代码签名凭证。使用EV增强型代码签名证书给软件签名具体如下:
一、准备工具
为了安全起见请尽可能使用微软官方签名工具signtool
- Microsoft Windows SDK for Windows 7 and .NET Framework 4 (含有signtool.exe签名工具)
- SafeNet U盾工具箱(SafeNetAuthenticationClient-x32-10.3.msi SafeNetAuthenticationClient-x64-10.3.msi)
- sign: 配置工具来签署文件
- /v: 指定成功执行和错误信息的详细选项
- /s: 指定证书仓库(如果证书安装在个人仓库中,那么SPC证书仓库使用 MY)
- /t: 指定给数字签名添加时间戳的时间戳机构所使用的链接
- /f: 指定签名证书文件。只支持个人信息交换(PFX)文件格式
- /pa: 指定使用默认验证审查策略
时间戳:
DigiCert - Symantec:
- SHA1:http://timestamp.verisign.com/scripts/timstamp.dll
- SHA256 RFC 3161: http://sha256timestamp.ws.symantec.com/sha256/timestamp
GeoTrust, Thawte等子品牌与Symantec时间戳共用
Comodo:
TrustCenter
- SHA256:http://www.trustcenter.de/codesigning/timestamp
二、软件签名
1. 将Safenet U盾插入签名软件电脑中
2. 运行CMD输入Signtool安装路径:
C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
注意:示例为默认安装SDK的路径
3. SHA1签名附带时间戳:
signtool.exe sign /s my /t http://timestamp.verisign.com/scripts/timstamp.dll /v "C:\filename.dll"
注意:如果个人证书仓库中安装了多张证书,请使用 /sha1 参数来指定扩展签名证书的哈希值。例如:
signtool.exe sign /s my /sha1 cert_thumbprint_value /t http://timestamp.verisign.com/scripts/timstamp.dll /v "C:\filename.dll"
4. SHA256 附带RFC 3161 时间戳签名:
signtool.exe sign /s my /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /v "C:\filename.dll"
注意:如果个人证书仓库中安装了多张证书,请使用 /sha1 参数来指定扩展签名证书的哈希值。例如:
signtool.exe sign /s my /sha1 cert_thumbprint_value /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /v "C:\filename.dll"
EV代码签名的证书及密钥存储在Token中,故上述命令均不需要指定证书。
运行以上命令之后,SafeNet会弹出Token的密码框,输入密码后点击OK
注意: 如果您需要批量签名,您需要启用 SafeNet单次登陆,当您启用单次登陆并登陆到Token后,就会免密批量签名了
三、测试签名
在发布签名软件之前,使用signtool.exe命令来测试数字签名,执行下述命令:
C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
signtool.exe verify /pa /v "C:\filename.dll"
关于Windows 内核驱动签名的注意事项,请参考:Windows内核驱动签名注意事项