无法生成 Apple Passbook 签名
Posted
技术标签:
【中文标题】无法生成 Apple Passbook 签名【英文标题】:Cannot generate Apple Passbook signature 【发布时间】:2012-09-20 22:23:10 【问题描述】:我正在编写一个 shell 脚本,使用 p12 证书从 manifest.json 自动生成 Apple Passbook 签名文件。这是我的工作:
openssl pkcs12 -passin pass:"mypass" -in "mycert.p12" -clcerts -nokeys -out certificate.pem
openssl pkcs12 -passin pass:"mypass" -in "mycert.p12" -nocerts -out key.pem
openssl smime -passin pass:"mypass" -binary -sign -signer certificate.pem -inkey key.pem -in manifest.json -out signature -outform DER
前两个函数工作正常。至少同时创建了 certificate.pem 和 key.pem。签名文件也被创建,但由于某种原因它是空的(0 字节),虽然 manifest.json 不为空,还有证书和密钥。这怎么会发生,我该如何解决?
【问题讨论】:
在运行这些命令时,您从 openssl 收到什么消息? 我没有收到任何错误消息。只是生成的文件是空的。我已经在下面发布了解决方案。 对我来说,前 2 个命令有效(至少我认为它们有效,因为我得到了 2 个 pem 文件),但第三个命令返回“无法加载证书”。如此混乱。知道它可能是什么吗? :( 【参考方案1】:我已经解决了这个问题。显然,我还需要 WWDR.pem 证书来执行此操作。它是这样工作的:
openssl pkcs12 -passin pass:"somepass" -in "mycert.p12" -clcerts -nokeys -out certificate.pem
openssl pkcs12 -passin pass:"somepass" -in "mycert.p12" -nocerts -out key.pem -passout pass:"somepass"
openssl smime -binary -sign -certfile WWDR.pem -signer certificate.pem -inkey key.pem -in manifest.json -out signature -outform DER -passin pass:"somepass"
【讨论】:
以上是关于无法生成 Apple Passbook 签名的主要内容,如果未能解决你的问题,请参考以下文章
PKPass 无法识别 Passbook Web 服务 URL