eSigner CKA(云密钥适配器) 是一款基于 Windows 的应用程序,它使用 CNG 接口(KSP 密钥服务提供商)允许 certutil.exe 和 signtool.exe 等工具使用 eSigner CSC API 进行签名操作。它的作用类似于虚拟 USB 令牌,并将代码签名证书加载到证书存储区。 此功能可帮助您使 eSigner 证书更加灵活,并可选择在 CI/CD 流程中自动执行物理 USB 令牌所不存在的签名。
本指南介绍如何使用生产证书或测试证书在 Windows SignTool 上执行手动和自动代码签名。
注意:eSigner CKA 允许灵活地选择在 CI/CD 流程中自动签名,而这些签名在使用物理 USB 令牌时是不存在的。有关如何使用 eSigner CKA 在 CI/CD 工具(包括 CircleCI、GitHub Actions、Gitlab CI 和 Travis CI)中自动进行代码签名的指导,请访问此页面: 如何将 eSigner CKA 与 CI/CD 工具集成以实现自动代码签名.
操作系统需求
- SSLcom 颁发的代码签名证书。
- 代码签名证书必须当前在 eSigner 上注册。请参阅本指南: 注册 eSigner 进行远程文档和代码签名
- 在您的计算机上安装 eSigner CKA 并配置签名模式(手动或自动)和签名类型(生产或测试)。请参阅本文了解安装说明: 如何安装 SSL.com eSigner Cloud Key Adapter (CKA)。
可选程序:使用预签名恶意软件扫描
恶意软件扫描是 SSL.com 提供的一项重要服务,可确保软件在使用代码签名证书签名之前不含恶意软件。通过集成恶意软件扫描,开发人员可以添加一层强大的安全保护,如果检测到恶意软件,则自动停止签名过程并提醒开发人员采取必要的措施。
说明:
- 登录您的 SSL.com 帐户。 单击订单选项卡,然后单击 下载 您的证书的链接以显示其详细信息。 向下滚动到 签署凭证 部分并找到显示您的 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 的相关代码签名指南
- 如何使用 eSigner CKA 和 HLKSigntool 签署硬件实验室工具包 (HLK) 文件. 硬件实验室套件 (HLK) 用于测试和准备内核模式驱动程序以提交给 Microsoft。为了与 Microsoft 的 HLK 平台集成,eSigner CKA 还要求安装 HLKSigntool。
- 如何使用 eSigner CKA 签署 VBA 宏. Microsoft Visual Basic for Applications (VBA) 允许那些没有编程专业知识的人记录、创建和修改宏,以自动执行 Office 应用程序内的重复任务。
- 如何使用 eSigner CKA 签署 .app 文件. Microsoft_Application.app文件全面包含了构成解决方案的所有扩展,提供了一种有效的方法来定义和引用该解决方案的身份。
- 如何使用 eSigner CKA 签署 vsix 文件. A
.vsix
文件是 Microsoft 集成开发环境 (IDE) Visual Studio 的扩展和附加组件的安装程序包。