如何在Makefile中指定SignTool使用的特定GlobalSign证书?
如何在Makefile中指定SignTool使用特定USB令牌证书
其实SignTool支持精准指定要使用的证书,你可以通过证书的主题名称或SHA-1指纹来定位,对应的参数是/n和/sha1,可能之前看微软文档时没注意到这些细节。
获取证书的标识信息
打开certmgr找到目标证书,双击打开详情面板,切换到「详细信息」标签页:
- 找到「主题」字段,复制完整的客户公司名称,用
/n "公司全称"来指定证书 - 找到「指纹」字段(SHA-1格式),复制那串无空格的十六进制字符,用
/sha1 指纹字符串来指定,这个标识绝对唯一,不会和其他证书冲突
Makefile中的签名命令示例
假设你原本的签名命令是signtool sign /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td SHA256 myapp.exe,现在加上指定参数即可:
- 用主题名称指定(适合名称唯一的情况):
sign-clientA: signtool sign /n "客户A有限公司" /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td SHA256 myapp.exe - 用SHA-1指纹指定(最稳妥,避免重名):
sign-clientB: signtool sign /sha1 1A2B3C4D5E6F7G8H9I0J1K2L3M4N5O6P7Q8R9S0T /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td SHA256 myapp.exe
注意事项
- 操作时对应的USB令牌必须保持插入状态,SignTool会自动弹出PIN输入窗口(如果你的令牌设置了PIN验证)
- 确保使用的是Windows SDK中较新的SignTool版本,这些参数在主流版本中都支持
内容的提问来源于stack exchange,提问作者Karl171
相关产品推荐
相关产品推荐

