Подписание файлов в Linux с помощью файлов SPC - PullRequest
4 голосов
/ 28 июля 2011

У меня есть один файл .key, из которого я сгенерировал файл .csr, который использовал для покупки сертификата для подписи кода GoDaddy.От GoDaddy я получил один файл .spc.

Я экспортировал файл spc в pem с помощью следующей команды:

openssl pkcs7 -inform DER -in mycert.spc -print_certs -out certs.pem 

Затем я открыл файл certs.pem и скопировал первые два сертификата в файл с именем cert-chain.crtи последний (мой) к одному с именем server.crt.

Я попытался подписать файл, как с помощью этой команды:

openssl smime -sign -in a.mobileconfig -out signed_a.mobileconfig -signer cert/server.crt -inkey cert/ios_apn.key -certfile cert/cert-chain.crt -outform der -nodetach

Но я получил:

unable to load certificate
11911:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-41/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE

Что я делаю не так?Как обычно подписывать файл a.mobileconfig с помощью предоставленного файла SPC?

1 Ответ

1 голос
/ 04 августа 2011

Ваш сертификат в формате DER, но openssl принимает формат PEM.Вы должны добавить -inform der к команде:

openssl smime -sign -in a.mobileconfig -out signed_a.mobileconfig -signer cert/server.crt -inkey cert/ios_apn.key -certfile cert/cert-chain.crt -inform der -outform der -nodetach
...