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

2023年6月后如何用Azure KeyVault存储证书签名.app文件?

可行解决方案

核心前提

Windows签名工具(包括AzureSignTool、原生SignTool)仅支持Windows平台可执行文件(.exe/.dll/.msi等),不支持macOS的.app应用包签名。必须结合macOS原生签名工具与Azure KeyVault的远程密钥访问能力实现需求。


方案1:通过PKCS#11桥接Azure Managed HSM与macOS codesign

普通Azure KeyVault不支持PKCS#11接口,需升级至Azure Managed HSM,利用其提供的PKCS#11驱动让macOS原生签名工具调用托管密钥:

  • 步骤1:将现有代码签名证书迁移至Azure Managed HSM实例。
  • 步骤2:在macOS机器上安装Azure Managed HSM的PKCS#11驱动,并配置驱动连接目标HSM实例。
  • 步骤3:使用codesign工具指定PKCS#11密钥槽完成签名,示例命令:
    codesign --sign "<证书指纹>" --keychain /Library/Keychains/System.keychain --pkcs11-library /path/to/azure-hsm-pkcs11.dylib YourApp.app
    
  • 注意:需确保macOS机器已配置Azure Managed HSM的访问权限,驱动参数配置正确。

方案2:基于Azure KeyVault签名API的自定义脚本流程

若暂无法升级至Managed HSM,可通过Azure KeyVault的签名API手动拆分签名流程:

  • 步骤1:提取.app包内的核心可执行文件(通常位于YourApp.app/Contents/MacOS/目录下)。
  • 步骤2:调用Azure KeyVault的Sign接口,对提取出的可执行文件哈希值进行签名。
  • 步骤3:使用macOS的codesign工具将签名结果嵌入回.app包,完成整体签名。
  • 注意:此方法需手动处理.app包的结构与签名嵌入逻辑,适合具备开发能力的场景。

关于之前尝试工具的说明

  • AzureSignTool:仅支持Windows平台文件格式,报错800B0003是预期行为,无法用于.app签名。
  • AzuKI+SignTool:即便解决0x80070057参数错误(多由证书选择或权限配置问题导致),SignTool本身不支持.app格式,此路径不可行。

内容的提问来源于stack exchange,提问作者Mike S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:32:37