Openssl 无法生成Apple Passpbook签名

Openssl 无法生成Apple Passpbook签名,openssl,certificate,ios6,smime,passbook,Openssl,Certificate,Ios6,Smime,Passbook,我正在编写一个shell脚本,使用p12证书从manifest.json自动生成一个Apple Passpbook签名文件。以下是我的工作: 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 smi

我正在编写一个shell脚本,使用p12证书从manifest.json自动生成一个Apple Passpbook签名文件。以下是我的工作:

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以及证书和密钥不是空的。这是怎么发生的?我该如何解决它?

我已经解决了这个问题。显然,我还需要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"

运行这些命令时,您从openssl获得了什么消息?我没有收到任何错误消息。只是生成的文件是空的。我已经发布了下面的解决方案。对我来说,前两个命令可以工作(至少我认为它们可以,因为我得到了2个pem文件),但第三个命令返回“无法加载证书”。太令人困惑了。知道可能是什么吗(