登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
1
2
/ 2 页
下一页
返回列表
首页
›
业界区
›
安全
›
SignTool 使用 SafeNet eToken 硬证书进行代码签名 ...
SignTool 使用 SafeNet eToken 硬证书进行代码签名
[ 复制链接 ]
羔迪
2025-10-12 15:20:00
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
根据CA/B联盟国际标准要求,从 2022 年 11 月 15 日起,即使是 OV 代码签名证书,也需要将私钥存储在FIPS140-2 Level2、Common Criteria EAL4级以上或者同等认证级别的硬件,如 USB 令牌、硬件安全模块 HSM 等。原本之前只有 EV 证书才有此要求,现在代码签名也需要如此。我司购买的证书刚好最近差不多快过期了,续签的证书从原本的很方便的 PFX 软证书,换成使用带 HSM 硬件设备的硬证书
换成带 HSM 硬件设备的硬证书之后,依然可以使用 SignTool 进行自动化签名。和之前的软证书 PFX 文件只有命令行参数的差别了。本文将记录如何修改 SignTool 签名命令适配硬证书
我所在的团队是从天威诚信购买的证书,没有议价,稍贵。但他们的售后服务还不错,会给一些指导。但天威诚信推荐的是用他们的 iTrusSignTool.exe 工具,而非微软官方提供的 SignTool 工具,不利于我的自动化打包平台接入
好在天威诚信购买的证书使用的是 SafeNet 工具,依然可以从堆栈网找到 SafeNet eToken 的 SignTool 命令行签名方法,整个不会被弹出要求输入密码的对话框。堆栈网上给的是 EV 证书签名,且也没有中文截图。为了防止其他伙伴踩坑,我重新跑了一遍,编写了本文,包含详细的步骤,步骤里包含中文和英文界面的截图。详细堆栈网的地址是: https://stackoverflow.com/questions/17927895/automate-extended-validation-ev-code-signing-with-safenet-etoken/47894907#47894907
先使用天威诚信供应商提供的口令和安装方法进行安装,这个步骤完成按照他们的文档就可以了,十分简单。唯一需要小心的是,这个过程里面不能使用远程桌面连接,哪怕用向日葵都可以,尽管在打包服务器部署向日葵是十分不安全的
详细配置文档请参阅 天威诚信代码签名证书安装配置指南(Digicert) 代码签名部署文档
如从其他供应商购买,还请自行参阅其他供应商提供的方法。如 https://www.geocerts.com/support/digicert-usb-etoken-installation-guide
完成证书下载任务之后,接下来即可进行本文的步骤了。本文以下步骤里面,我所有写入的我的密码等,都不是我所在团队真正使用的密码,还请大家不用担心我泄露密码,但却都是符合真实格式的内容,便于大家明确了解各个参数应该从哪里拿到
0 首先点击齿轮键进入高级模式,其高级模式界面如下
1 导出证书为 Codesign.cer 文件。右击对应的证书,选择导出,保存到文件即可。导出的 cer 格式的证书文件将不包含私钥,需要使用以下步骤获取 CSP 名和其对应的私钥容器名参数才能让 SignTool 从硬件设备获取私钥用于签名
2 记住证书的容器名。将其记录到记事本里,后续命令将会用到。如我的是 Container name 容器名是 p11#59336aa23069996b
3 获取设备的 CSP 名和读卡器名称
读卡器名称:
CSP 名:
CSP 名和读卡器名称在相同一页,只是内容比较多,需要滚动一下滚动条才能看到。额外地,在菜单栏也提供了复制的按钮,不需要真自己一个个字符抄
如我的读卡器名 reader 为 SafeNet Token JC 0
我的 CSP 名为 eToken Base Cryptographic Provider
4 拼接私钥容器名参数
eToken CSP 具有隐藏(或者至少没有广泛宣传)的功能,可以从容器名称中解析出令牌密码。尽管 https://stackoverflow.com/questions/17927895/automate-extended-validation-ev-code-signing-with-safenet-etoken/47894907#47894907 说明包含四个可选项,但实际我测试了,最稳妥的是最为复杂的写法项
为了让我的博客引擎开森,我将以下代码的两个连在一起的花括号替换为全角的花括号。自己使用的时候,还请替换全角的花括号为半角的花括号
[reader{{password}}]=ContainerName
复制代码
其各个参数含义如下
reader: 读卡器名。第 3 步获取到的,如我的是 SafeNet Token JC 0
password: 下载证书过程中,自己设置的证书密码,如我的是 Lindexi123
ContainerName: 证书的容器名。第 2 步获取的,如我的是 p11#59336aa23069996b
重点说明,以上格式的两个连续花括号是必需的部分,这属于语法的一部分,还请不要省略
拼接之后的私钥容器名参数如下
/k "[SafeNet Token JC 0{{Lindexi123}}]=p11#59336aa23069996b"
复制代码
5 完全的签名参数
按照微软的官方文档,可以知道其核心参数如下
/f : 导出的 Codesign.cer 签名证书文件,此证书文件没有包含私钥。私钥是存放在硬件设备里面。如后续步骤错误,将收到 SignTool Error: No private key is available 错误提示
/csp : 步骤 3 获取的 CSP 名。只有 csp 不配合 /k 参数,则将收到 SignTool Error: The /csp option requires the /k option. 错误
/k : 从步骤 4 拼接到的。等同于 /kc 参数,即写 /k 或 /kc 都可以
非核心的日常参数如下,以下参数相对固定,正常不用更改
/td :将此选项与 /tr 选项一起使用可请求 RFC 3161 时间戳服务器使用的摘要算法。正常现在只能用 /td sha256
/tr :指定 RFC 3161 时间戳服务器的 URL 地址。如用 digi 的服务器 /tr http://timestamp.digicert.com
/fd :指定要用于创建文件签名的文件摘要算法。正常现在只能用 /fd sha256
/as :追加此签名。如果不存在主签名,则改为使此签名成为主签名
以下是我的示例签名命令,对 Test1.exe 文件进行签名
SignTool sign /f "Codesign.cer" /td sha256 /as /fd sha256 /tr http://timestamp.digicert.com /csp "eToken Base Cryptographic Provider" /k "[SafeNet Token JC 0{{Lindexi123}}]=p11#59336aa23069996b" Test1.exe
复制代码
以上签名命令里面,为了让我的博客引擎开森,我将两个连在一起的花括号替换为全角的花括号,还请自行替换为半角花括号。额外地,大家所设置的密码,即 Lindexi123 部分,以及证书的容器名,即 p11#59336aa23069996b 部分,都是和我不相同的,还请大家自行替换为自己的密码和证书的容器名
以上签名命令里面,证书文件写的是相对路径,如遇到证书找不到的问题,还请自行修改为你的正确证书文件路径。证书文件 /f 参数也可传入绝对路径,正常在打包过程中,传入绝对路径更好,避免工作路径干扰
在此过程里面,都需要保持签名设备没有远程桌面 RDP 连接,否则将会签名失败。如签名成功,将会看到大概如下的控制台输出内容
Done Adding Additional Store
Successfully signed: Test1.exe
复制代码
签名成功之后,右击被签名的文件的属性,可以从数字签名界面看到签名内容。大家可以先尝试命令行参数,确定能够正常签名之后,再接入到自己的打包平台里面。对每个文件的签名,也只有传入的文件路径不相同而已,其他参数都是一样的,换句话说只要自己能拼接出一次正确的命令参数,接下来的其他文件的签名都可以复用这些参数
参考文档
Digicert代码签名证书助手操作指南 代码签名部署文档
天威诚信代码签名证书安装配置指南(Digicert) 代码签名部署文档
https://www.gworg.com/code/1627.html
使用 SignTool 对文件进行签名 - Win32 apps Microsoft Learn
SignTool - Win32 apps - Microsoft Learn
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
SignTool
使用
SafeNet
eToken
证书
相关帖子
使用小龙虾来操作猿编程的遥控车
给Xcode使用完整版本的swiftformat
使用Alpine配置WSL ssh门户
使用Alpine配置WSL ssh门户
使用Alpine配置WSL ssh门户
使用Alpine配置WSL ssh门户
k8s~secret资源的使用
还在古法编程?免费使用AI编程助手OpenCode 与完全本地化配置
还在古法编程?免费使用AI编程助手OpenCode 与完全本地化配置
使用 OpenSpec + 提示词工程 + Harness 思维,构建一站式多 Agent 研发流程
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
使用小龙虾来操作猿编程的遥控车
0
879
账暴
2026-03-26
业界
给Xcode使用完整版本的swiftformat
0
925
晚能
2026-03-27
业界
使用Alpine配置WSL ssh门户
0
1010
郁梓馨
2026-03-30
业界
使用Alpine配置WSL ssh门户
0
175
瞧厨
2026-03-30
业界
使用Alpine配置WSL ssh门户
0
349
任俊慧
2026-03-30
业界
使用Alpine配置WSL ssh门户
0
521
士沌
2026-03-30
安全
k8s~secret资源的使用
0
856
齐娅晶
2026-03-31
业界
还在古法编程?免费使用AI编程助手OpenCode 与完全本地化配置
0
106
损注
2026-03-31
业界
还在古法编程?免费使用AI编程助手OpenCode 与完全本地化配置
0
158
金娅鸣
2026-03-31
业界
使用 OpenSpec + 提示词工程 + Harness 思维,构建一站式多 Agent 研发流程
0
495
啦迩
2026-03-31
回复
(28)
那虻
2025-10-13 13:18:50
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
懂技术并乐意极积无私分享的人越来越少。珍惜
姥恫
2025-10-16 07:01:00
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
yyds。多谢分享
命煦砌
2025-12-4 14:57:25
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
谢谢分享,辛苦了
唐茗
2025-12-8 13:23:01
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
用心讨论,共获提升!
姘轻拎
2025-12-9 20:51:19
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享
钦娅芬
2025-12-11 08:58:52
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
过来提前占个楼
骆贵
2025-12-14 17:09:09
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢楼主提供!
孜稞
2026-1-19 12:44:27
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
热琢
2026-1-20 09:33:08
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
热心回复!
户烫擞
2026-1-26 09:55:21
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
喜欢鼓捣这些软件,现在用得少,谢谢分享!
昝沛珊
2026-2-1 04:24:47
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,学习下。
单于易槐
2026-2-1 16:08:22
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
喜欢鼓捣这些软件,现在用得少,谢谢分享!
穆望
2026-2-2 02:05:06
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享
盒礁泅
2026-2-3 07:52:07
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
过来提前占个楼
挫莉虻
2026-2-4 05:50:15
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
不错,里面软件多更新就更好了
劳暄美
2026-2-8 03:06:34
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
东西不错很实用谢谢分享
铝缉惹
2026-2-8 10:54:26
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
分享、互助 让互联网精神温暖你我
汇干环
2026-2-10 13:07:10
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
东西不错很实用谢谢分享
嗦或
2026-2-11 02:59:23
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
下一页 »
1
2
/ 2 页
下一页
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
羔迪
2026-2-11 02:59:23
关注
0
粉丝关注
17
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
神泱
9537
6
宋子
9883
7
韶又彤
9911
8
诀锺
9036
9
荪俗
9020
10
蓬森莉
9871
查看更多
今日好文热榜
6
host怎么设置,host设置教程
245
2026国内图床深度选型指南:从需求到实测,
874
Claude Code源码泄露:8大隐藏功能曝光
674
没有技术要求,只需5步就能完成数据分析和
388
完整项目实战
764
Python 数据类型:数字、字符串与容器
823
从“救火”到“预判”:AIOps 如何用 AI 重
598
Redis 单线程真的是单线程吗?源码角度全面
426
突发!Claude Code 51万行源码全网裸奔:一
495
使用 OpenSpec + 提示词工程 + Harness 思
528
.NET 进阶之路:异步、并发与内存管理的系
497
Java 中的 实现、泛型
977
Go + Vue 接入行为验证码完整指南
624
Python 面向对象编程:从入门到实践
766
Python 面向对象编程:从入门到实践
540
Mem0:给 AI Agent 装上「长期记忆」
757
Mem0:给 AI Agent 装上「长期记忆」
632
我用 Codex 和 Gemini,做了一个本地桌面版
428
Go + Vue 接入行为验证码完整指南
510
Mem0:给 AI Agent 装上「长期记忆」