在Linux上使用SPC文件签署文件

4
我有一个 .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

我做错了什么?我应该如何使用提供的SPC文件正常签署a.mobileconfig文件?
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接