Pergunta

Estou escrevendo um script de shell para gerar automaticamente um arquivo de assinatura do Apple Passbook a partir de manifest.json usando o certificado p12.Aqui está o que eu faço:

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

As duas primeiras funções funcionam bem.Pelo menos tanto Certificate.pem quanto Key.pem são criados.O arquivo de assinatura também é criado, mas por algum motivo está vazio (0 bytes), embora manifest.json não esteja vazio, assim como o certificado e a chave.Como isso pode acontecer e como posso consertar?

Foi útil?

Solução

Eu resolvi esse problema.Aparentemente, também preciso do certificado WWDR.pem para fazer isso.Foi assim que funcionou:

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top