Domanda

Sto scrivendo uno script di shell per generare automaticamente un file di firma di Apple Passbook da Manifest.json utilizzando il certificato P12.Ecco cosa faccio:

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
.

Le prime due funzioni funzionano bene.Almeno sia certificato.PEM e Key.PEM.Il file della firma viene anche creato, ma per qualche motivo è vuoto (0 byte), anche se manifesto.json non è vuoto, così come certificato e chiave.Come può accadere, e come posso aggiustarlo?

È stato utile?

Soluzione

Ho risolto questo problema.Apparentemente, ho anche bisogno del certificato wwdr.pem per farlo.Ecco come funziona:

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"
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top