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

生成Apple Wallet Pass遇证书签名问题无法生成有效.pkpass求助

Apple Wallet Pass 签名失效问题解决流程

问题根因

2020版WWDR中间证书已到期,苹果目前强制使用新版WWDR中间证书完成Pass签名校验,新旧证书信任链不兼容,且单独使用公钥/私钥拆分签名不符合苹果的签名校验规则,会直接导致Pass无效。

完整签名文件生成&签名步骤

  1. 导出正确的Pass类型证书与私钥
  • 打开钥匙串访问,导入从苹果开发者后台获取的最新版WWDR中间证书
  • 在钥匙串「我的证书」分类下找到对应Pass Type ID的证书,点击展开左侧箭头,确认证书下绑定了对应私钥
  • 同时选中证书条目和下属私钥条目,右键选择导出,格式选.p12,设置导出密码保存。注意:单独导出公钥或单独导出私钥都会导致签名无效,必须同时选中证书+配对私钥导出
  1. 格式转换(使用OpenSSL工具执行以下命令)
  • 将p12格式的Pass证书转换为PEM格式:
    openssl pkcs12 -in 你导出的p12文件路径.p12 -clcerts -nokeys -out pass_cert.pem
  • 将p12格式的私钥转换为PEM格式,执行时需要输入p12导出密码,若不需要私钥密码保护可添加-nodes参数:
    openssl pkcs12 -in 你导出的p12文件路径.p12 -nocerts -out pass_key.pem
  • 将下载的CER格式WWDR中间证书转换为PEM格式:
    openssl x509 -inform DER -in 下载的WWDR证书路径.cer -out wwdr.pem
  1. 生成签名文件
    首先计算pass包内所有资源文件(含pass.json、所有图片素材、本地化文件等,不要包含manifest.json和最终生成的signature文件)的SHA1哈希值,写入manifest.json结构,示例格式:
{
  "pass.json": "对应文件的sha1值",
  "icon.png": "对应文件的sha1值",
  "logo.png": "对应文件的sha1值"
}

执行签名命令生成signature文件,必须带上WWDR证书参数构建完整信任链:
openssl smime -binary -sign -signer pass_cert.pem -inkey pass_key.pem -certfile wwdr.pem -in manifest.json -out signature -outform DER -passin pass:你设置的私钥密码

常见校验失败排查点

  • 打包.pkpass时,所有文件必须直接放在ZIP压缩包根目录,不能嵌套上层文件夹,压缩格式使用标准ZIP格式即可
  • 不要使用2023年之前下载的旧版WWDR证书,必须替换为苹果最新发布的WWDR中间证书
  • 签名时必须通过-certfile参数传入WWDR的PEM文件,缺失该参数会导致证书链不被信任
  • 不要修改manifest.json内的文件哈希值,所有文件修改后必须重新计算哈希,否则会报哈希校验不通过

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 23:31:04