如何使用vsixsigntool.exe搭配SafeNet HSM签名VSIX扩展包?
使用SafeNet 5110 HSM签名VSIX扩展的方案
一、直接使用vsixsigntool配合HSM签名
可以直接用vsixsigntool搭配SafeNet 5110 HSM中的证书完成签名,前提是正确配置HSM驱动并确保证书能被系统识别:
- 安装SafeNet Authentication Client等驱动软件,插入令牌后确认证书已出现在系统证书存储的「个人」容器中(可通过
certutil -store My命令查看)。 - 获取证书的SHA1哈希值(从证书属性或certutil输出中复制指纹,去掉空格)。
- 修改原命令,移除
/f和/p参数(不再需要PFX文件),保留/sha1指定证书哈希,执行签名:
vsixsigntool.exe sign /sha1 %HASH% /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td sha256 <path_to_vsix>
运行时需确保令牌已插入,按提示输入令牌PIN码(若设置了PIN)。
二、替代方案:用signtool直接签名VSIX
vsixsigntool本质是signtool的封装,若前者出现识别问题,可直接使用signtool结合HSM签名:
- 同样确保HSM驱动正常,证书在系统存储中。
- 执行以下signtool命令(若证书在机器存储而非用户存储,需添加
/sm参数):
signtool.exe sign /sha1 %HASH% /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td sha256 /fd sha256 <path_to_vsix>
/fd sha256指定文件签名算法,符合VSIX扩展的签名要求。
注意事项
- 确保运行命令的账户拥有访问SafeNet HSM令牌的权限,部分HSM需在客户端软件中配置权限。
- 若证书位于本地机器存储,在vsixsigntool命令中添加
/sm参数即可指定读取机器存储中的证书。
内容的提问来源于stack exchange,提问作者Tecman
相关产品推荐
相关产品推荐

