Pregunta

Estoy escribiendo un script de shell para generar automáticamente un archivo de firma de Apple Passbook desde Manifest.json utilizando el certificado P12.Aquí está lo que hago:

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

Las dos primeras funciones funcionan bien.Al menos ambos certificados. PEM y Key.PEM se crean.El archivo de firma también se crea, pero por alguna razón está vacío (0 bytes), aunque Manifest.json no está vacío, así como el certificado y la clave.¿Cómo puede suceder esto, y cómo puedo arreglarlo?

¿Fue útil?

Solución

He resuelto este problema.Aparentemente, también necesito certificado WWDR.PEM para hacer esto.Así es como funcionó:

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"

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top