Подписание файлов в Linux с помощью файлов SPC

У меня есть один файл .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?


person Community    schedule 28.07.2011    source источник


Ответы (1)


Ваш сертификат находится в формате 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
person qbert220    schedule 04.08.2011