我想使用从 Globalsign 购买的 EV 代码签名证书来签署 MSIX 包。
密钥以 HSM 存储类型存储在 Google Cloud KMS 上。我基本上按照这篇文章生成我的CSR和这个这个文档来知道我应该将哪个参数传递给signtool。
我的signtool命令:
cmd /C '"C:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe" sign /fd SHA256 /f .\final.cer /t http://timestamp.globalsign.com/tsa/r6advanced1 /csp "Google Cloud KMS Provider" /kc projects/redacted/locations/redacted/keyRings/redacted/cryptoKeys/redacted/cryptoKeyVersions/2 .\package.msix'
它返回此错误:
SignTool Error: No private key is available.
这个错误消息让我认为signtool无法获取kms中存储的私钥,但我找不到原因。我使用
gcloud auth application-default login
登录 GCP,并且我的帐户可以访问 KMS 资源。
有人遇到过这个错误吗?
我还想知道 CSR 生成过程中的错误是否会导致此错误。
我还可以使用什么其他工具在 Windows 上签署我的包?
谢谢!
我忘记安装 Google Cloud CNG Provider。
此外,私钥必须使用 EC_SIGN_P256_SHA256 或 EC_SIGN_P384_SHA384 生成。您应该确保您的证书提供商与这些算法兼容。