eSigner CKA(云密钥适配器) 是一个使用 CNG 接口(KSP 密钥服务提供程序)的 Windows 应用程序,用于启用 的certutil.exe 金益辉 signtool.exe 通过以下方式执行代码签名操作 电子签名者 CSC API.
充当 虚拟 USB 令牌它能安全地将代码签名证书加载到 Windows 证书存储区,无需任何物理硬件。作为一种基于云的签名方法,eSigner CKA 消除了 USB 令牌的成本、物流难题和安全风险,同时提供了企业级的签名功能,而无需网络化 HSM 的复杂性。这使其成为一种 可扩展、安全且经济高效的解决方案 适用于现代代码签名工作流程。
本指南涵盖 使用 SignTool 在 Windows 上进行手动和自动代码签名 使用生产或测试证书。与物理令牌不同,eSigner CKA 支持 先进的自动化从而能够与 CI/CD 工具无缝集成,例如: GitHub Actions、GitLab CI、CircleCI 和 Travis CI如果您正在使用 CI/CD 工具,请参阅以下相关指南: 如何将 eSigner CKA 与 CI/CD 工具集成以实现自动代码签名.
申请条件
- SSLcom 颁发的代码签名证书。
- 代码签名证书必须当前在 eSigner 上注册。请参阅本指南: 注册 eSigner 进行远程文档和代码签名
- 在您的计算机上安装 eSigner CKA 并配置签名模式(手动或自动)和签名类型(生产或测试)。请参阅本文了解安装说明: 如何安装 SSL.com eSigner Cloud Key Adapter (CKA)。
可选程序:使用预签名恶意软件扫描
恶意软件扫描是 SSL.com 提供的一项重要服务,可确保软件在使用代码签名证书签名之前不含恶意软件。通过集成恶意软件扫描,开发人员可以添加一层强大的安全保护,如果检测到恶意软件,则自动停止签名过程并提醒开发人员采取必要的措施。
说明:
- 登录您的 SSL.com 帐户。 单击订单选项卡,然后单击 download 您的证书的链接以显示其详细信息。 向下滚动到 签署凭证 部分并找到显示您的 eSigner 证书凭据的部分。 确保单选按钮显示 已启用签名凭据 金益辉 已启用恶意软件拦截器 被选中。


- 安装 eSigner 云密钥适配器。
- 安装 eSigner CodeSignTool。 点击 开始 下载 eSigner CodeSignTool。
- 使用以下命令扫描 CodeSignTool 上的代码:
scan_code [-hV] -input_file_path=<inputFilePath> -password=<PASSWORD> [-program_name=<programName>] -username=<USERNAME> - 使用 SignTool 使用以下命令通过 eSigner CKA 对代码进行签名:
scan_code -username=<USERNAME> -password=<PASSWORD> -credential_id=<eSigner Credential ID> -input_file_path=<inputFilePath>
参数:
-input_file_path=<PATH>:要签名的代码对象的路径。-username=<USERNAME>: SSL.com 帐户用户名-password=<PASSWORD>: SSL.com 户口密码。-program_name=<PROGRAM_NAME>: 节目名称-credential_id=<CREDENTIAL_ID>:签名证书的凭据 ID。 您的电子签名者凭证 ID 位于您的 SSL.com 证书订购页面。
制定代码签名命令
司令部的组成部分
对于手动和自动代码签名,命令 包含:
- SignTool(负责对文件进行数字签名并验证签名的命令行工具)的位置,用双引号括起来。示例:“C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86\signtool.exe”
注意:SignTool 的位置取决于下载的 SDK 版本和所使用的架构。 - 此 /fd sha256 指定哈希算法的选项
- 此 / tr http://ts.ssl.com 指定时间戳服务器地址的选项
- /td sha256 指定时间戳摘要算法的选项
- 此 /sha1 选项指定 SignTool 用于从密钥库中查找适当的代码签名证书的指纹
- 实际上 证书指纹
- 需要签名的文件路径,用双引号括起来:“SIGNABLE FILE PATH”
整个命令应如下所示:
“C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86\signtool.exe” sign /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 证书指纹 “可签名文件路径”.
如果您遇到此错误:
The timestamp certificate does not meet a minimum public key length requirement,您应该联系您的软件供应商以允许来自 ECDSA 密钥的时间戳。如果您的软件供应商无法允许使用普通端点,您可以使用此旧版端点
http://ts.ssl.com/legacy 从 RSA 时间戳单元获取时间戳。
找到您的证书指纹
稍后,在安装 eSigner CKA 并将您的 EV 代码签名证书添加到 用户证书存储,您将能够通过按来检查您的 EV 代码签名证书指纹 Windows键+ R 然后输入 certmgr.msc 访问用户证书存储。 弹出证书管理器窗口时,单击 个性化服务 左侧面板上的文件夹,然后选择 证书 右侧的子文件夹以找到您的 EV 代码签名证书。

双击证书。 选择详细信息 选项卡,然后向下滚动以显示指纹。复制指纹并在签署代码时将其包含在命令中。
手动代码签名
安装 eSigner CKA
通过命令行访问 SignTool
回想一下,代码签名的命令如下所示:
“C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86\signtool.exe” sign /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 证书指纹 “可签名文件路径”
写入命令并按下 输入, 你会看到消息 完成添加其他商店. 然后会弹出一个窗口,要求您输入 SSL.com 帐户的用户名和密码。

输入一次性密码 (OTP)
您的电子签名者注册的 EV 代码签名证书的一次性密码 (OTP) 将发送到您的身份验证器应用程序。 成功输入后,命令提示符将指示您的文件已成功签名。


成功!您的代码现已签名。
检查文件上的数字签名
代码签名成功后,您现在可以查看文件上数字签名的详细信息。 右键单击已签名的文件,单击 物业,接着是 数字签名 标签。 在这里,您将看到签名者的名称、使用的摘要算法以及签名的时间戳。 点击 信息 按钮以获取有关签名代码的更多信息。

您将能够阅读以下信息: 这个数字签名没问题. 继续点击 查看证书 按钮。

点击后 查看证书 按钮,您将阅读指示为签名文件颁发的数字证书确保它来自发布者并保护它在发布后不被更改的信息。
自动代码签名
通过命令访问 SignTool
回想一下,代码签名的命令如下所示:
C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86\signtool.exe” 签名 /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 证书指纹“SIGNABLE文件路径”
可选 命令提示符 金益辉 输入命令。按回车键后,您将看到通知 完成添加其他商店.

几秒钟后,您将看到通知 成功签约. 这表明您的文件已以自动方式签名,无需额外的 OTP。

检查文件上是否存在数字签名
打开签名文件的文件夹位置。 右键单击它,然后单击 物业. 单击选项卡 数字签名 在这里你会看到使用的安全哈希算法有 256 位。 单击显示签名者名称、摘要算法和时间戳的直接空格。 突出显示后,继续单击 信息 按钮。

然后将显示一个弹出窗口,说明文件上的数字签名有效,并指出签名的具体时间。 点击 查看证书 按钮以查看有关已颁发的 EV 代码签名数字证书的更多信息。

您将看到有关 EV 代码签名证书的信息,说明它验证您是可执行文件的创建者并保护您的文件不被篡改。
使用 eSigner CKA 的相关代码签名指南
- 对硬件实验室套件 (HLK) 文件进行签名 – 将 eSigner CKA 与 HLKSigntool 测试并准备内核模式驱动程序以供提交给微软。与微软的 HLK 平台集成需要 HLKSigntool。
- VBA宏签名 – 学习如何对 Microsoft Visual Basic for Applications (VBA) 宏进行签名,该宏可以自动执行 Office 应用程序中的任务,而无需编程专业知识。
- 对 .app 文件进行签名 - 符号 .app 用于安全地定义和引用完整 Microsoft 应用程序解决方案的身份的文件。
- 对 .vsix 文件进行签名 - 符号 .vsix Visual Studio 扩展和插件的安装包,确保 IDE 组件的完整性和真实性。


