导航
远程代码签名服务提供多种客户端、系统 Provider、开发接口和自动化集成方式。
如果你不确定应该选择哪种方式,可以根据使用场景从下面开始。
如何选择集成方式
| 使用场景 | 推荐方式 |
|---|---|
| 使用官方命令行工具直接对 EXE、DLL、MSI 等文件进行签名 | 客户端工具 |
| 在 macOS 上通过 Homebrew 安装代码签名客户端 | 客户端工具 |
| Microsoft SignTool、Visual Studio、MSBuild 等 Windows 工具需要直接使用远程私钥 | Windows Provider |
| 需要兼容传统 Windows CryptoAPI / CSP 应用 | Windows Provider |
使用 jarsigner 对 Java JAR 文件进行签名 | Java 集成 |
| 在 GitHub Actions 中自动完成代码签名 | CI/CD 与构建工具 |
| 使用 Electron Builder 自动完成 Windows 应用签名 | CI/CD 与构建工具 |
| 使用 Advanced Installer 构建和签名安装包 | CI/CD 与构建工具 |
| 自行开发客户端或直接调用远程签名服务 | API 集成 |
| 查询签名次数、时间戳服务器等公共信息 | 参考资料 |
客户端工具
适用于希望直接使用 sslTrus 官方客户端完成代码签名的用户。
主要包括:
- SignTool CLI:通过命令行直接完成文件签名。
- 签名额度查询:查询证书剩余及总签名次数。
- 客户端更新:查询并安装最新版本。
- Homebrew:在 macOS 上安装 CLI 或桌面客户端。
Windows Provider
适用于 Microsoft SignTool、Visual Studio、MSBuild、安装包工具以及其他支持 Windows Cryptography API 的软件。
提供两种 Provider:
- KSP(Key Storage Provider):基于 Windows CNG,适合现代 Windows 签名流程。
- CSP(Cryptographic Service Provider):基于传统 CryptoAPI,适合需要 CSP 兼容性的应用。
签名私钥始终保存在云端 HSM 中,本地 Provider 负责将签名请求发送到远程代码签名服务。
Java 集成
适用于 Java 代码签名场景。
通过 sslTrus 提供的 Java Provider,可以使用标准 jarsigner 工具对 JAR 文件执行远程代码签名。
CI/CD 与构建工具
适用于需要将代码签名集成到自动构建、发布或打包流程中的场景。
当前包括:
- GitHub Actions
- Electron Builder
- Advanced Installer
后续其他 CI/CD 或构建工具的集成方式也将在此页面提供。
API 集成
适用于需要自行开发代码签名客户端或将远程签名能力集成到现有系统中的开发者。
远程代码签名 API 支持:
- 提交待签名摘要并获取签名结果。
- 上报客户端最终签名处理状态。
调用方负责在本地完成文件摘要计算、签名结构处理以及最终签名结果写入。
参考资料
这里提供适用于多种集成方式的公共参考信息,包括:
- 签名次数计算说明:说明 CLI、KSP、CSP、Jarsigner、Electron 和安装包等场景如何计算签名次数。
- 时间戳服务器:介绍 Authenticode、RFC 3161 以及常用代码签名时间戳服务。