Appearance
常见问题与排查
先确认失败发生在安装、签名、时间戳还是验签阶段。记录客户端版本、Windows 版本、执行账户和脱敏错误信息,再按对应情况排查。
找不到代码签名证书
- 确认证书已签发、未过期且交付方式为云签。
- 核对当前 Windows 账户与安装 Cloud 操作员时的账户。
- 在客户端刷新证书信息,请管理员核对签名授权。
- 仅命令行不可见时,检查 KSP 是否开启,使用 证书查询命令 核对当前用户存储区。
使用证书指纹选择代码签名证书,不要选择操作员身份证书。
操作员安装或认证失败
核对安装信息是否属于 VSign Cloud、是否由管理员提供,以及目标环境是否正确。Cloud 安装 Token、Box 安装地址和已下线的共享授权码不能混用。
检查网络或代理设置;仍失败时提供脱敏错误给技术支持,不要发送完整 Token、密码或私钥材料。
图形界面能签名,命令行或服务不能
在失败环境执行 whoami,核对执行账户。在相同账户下检查 SignTool 路径、KSP 和代码签名证书。
Windows 服务可能使用 LocalSystem,无法直接看到桌面用户的操作员证书。请按 GitLab CI 环境配置 为实际执行身份配置,不使用把密码写在命令行的方式切换账户。
时间戳失败
核对时间戳地址是否为 RFC 3161 服务,检查签名主机及服务账户的网络访问。SignTool 使用 /tr 和 /td SHA256,不要把云签 API 地址作为时间戳地址。
如果文件已包含签名但缺少时间戳,本指南的严格签名脚本会拒绝覆盖已有签名。重新取得未签名构建产物,修复时间戳配置后重新签名,再按 验签步骤 复测。
签名结果不正确
| 现象 | 处理 |
|---|---|
| 文件未签名 | 核对输入、输出及 artifact 路径,查看签名任务的错误 |
| 发布者与预期不同 | 核对签名规则及证书指纹,使用正确证书重新签署原始产物 |
| 文件摘要错误 | 确认签名后没有修改文件,把签名放到构建和资源修改之后 |
| 信任链或吊销检查失败 | 检查验证电脑的信任库、系统时间和网络,保留详细验签错误 |
| SmartScreen 仍拦截 | 阅读 软件签名与信誉说明 |
流水线卡住或失败
确认 Runner 使用受保护的可信执行环境,变量在当前引用可用,并且无需交互输入。构建与签名任务的规则应一致,签名任务须收到构建产物。更多配置见 GitLab CI 集成。
不要通过忽略退出码、关闭验签或省略时间戳来让发布任务通过。
提交问题时提供什么
- 失败阶段、发生时间、完整但已脱敏的错误信息。
- VSigntool、Windows 和 SignTool 版本。
- 桌面或服务运行方式,执行账户类型及是否使用代理。
- 文件类型、期望使用的证书和已执行的检查步骤。
请勿发送操作员安装 Token、账户密码、私钥或未经允许分发的软件文件。可通过 VSign 官网 联系技术支持。
