5

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

最初の 2 つの関数は正常に動作します。少なくとも、certificate.pem と key.pem の両方が作成されます。署名ファイルも作成されますが、manifest.json は空ではありませんが、証明書とキーと同様に、何らかの理由で空 (0 バイト) になっています。これはどのように発生する可能性があり、どうすれば修正できますか?

4

1 に答える 1

10

私はこの問題を解決しました。どうやら、これを行うには 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"
于 2012-10-02T02:05:34.317 に答える