You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AWS CloudHSM上使用Mage签名清单文件遇问题求助

可行解决办法

因为Mage.exe本身对HSM存储的证书存在兼容性问题(相关问题仍处于开放状态),在不修改Mage.exe的前提下,推荐以下两种替代方案:

方案1:先用Mage生成未签名清单,再用signtool签名

既然signtool已经能正常使用CloudHSM中的证书签名各类文件,可拆分步骤完成manifest签名:

  1. 用Mage生成未签名的应用清单:
    mage -New Application -ToFile MyApp.exe.manifest -Name "你的应用名称" -Version 1.0.0.0
    
    (如果是更新现有清单,用-Update参数代替-New,确保不要加-Sign参数)
  2. 用signtool对生成的未签名manifest进行签名:
    signtool sign /fd sha256 /csp "Cavium Key Storage Provider" /k "<你的密钥容器名称>" /sha1 "<证书指纹>" MyApp.exe.manifest
    

方案2:使用PowerShell的Set-AuthenticodeSignature签名清单

PowerShell的Set-AuthenticodeSignature cmdlet同样支持指定CSP访问CloudHSM证书,操作步骤:

  1. 定位到CloudHSM中的目标证书:
    $targetCert = Get-ChildItem Cert:\CurrentUser\My | Where-Object { $_.Thumbprint -eq "<证书指纹>" }
    
  2. 对manifest文件执行签名:
    Set-AuthenticodeSignature -FilePath MyApp.exe.manifest -Certificate $targetCert -HashAlgorithm SHA256 -Csp "Cavium Key Storage Provider"
    

关键说明

Mage.exe报错的核心原因是它没有正确适配HSM类证书的签名流程,既没有正确调用CSP的签名接口,也对证书的存储位置做了严格限制(默认只识别本地存储的证书)。而signtool和PowerShell的签名工具则完全遵循Windows CSP规范,能正常与AWS CloudHSM的CSP交互完成签名。

注意事项

  • 确保执行命令的用户已通过CloudHSM客户端完成身份验证,且拥有对应密钥容器的签名权限
  • 签名时指定的哈希算法(如SHA256)需与证书支持的算法一致
  • 针对部署清单(.application文件),同样可以用上述方法先生成未签名文件,再完成签名

内容的提问来源于stack exchange,提问作者Mickey Cohen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 03:48:25