我正在开发一个iOS移动设备管理项目,并且已经停留在Over-The-Air注册几天。
在Apple's Offical OTA Doc的第1阶段第4步和第2阶段第1步中,配置文件服务器应发回由供应商签名的配置配置文件,或者配置文件显示为红色“未签名” iPhone,所以我要求我公司提供MyCompanyRootCA.cert文件。
所以我的问题是: 根据{{3}},我可以使用此openssl命令来签署配置文件:
openssl smime -sign -in company.mobileconfig -out signed.mobileconfig -signer server.crt -inkey server.key -certfile cert-chain.crt -outform der -nodetach
但是如何获取私钥(server.key)文件和证书包(cert-chain.crt),我可以从MyCompanyRootCA.cer获取这些文件吗?
我已尝试使用这些命令创建p12文件并尝试获取私钥。
keytool -importkeystore -srckeystore existing-store.jks -destkeystore new-store.p12 -deststoretype PKCS12
openssl pkcs12 -in new-store.p12 -nocerts -out key.pem
openssl rsa -in key.pem -out server.key
我是否未能使用此命令,因为根ca证书只是一个公钥而且不包含任何私钥?
我对所有签名过程都不太熟悉,如果这不是一个正确的方法,请就如何签名提出更多建议,感谢任何帮助,谢谢。
答案 0 :(得分:1)
您无法仅使用证书进行签名。证书仅包含公钥,签名需要私钥。
实际上,您需要 MyCompanyRootCA 颁发机构颁发的签名证书。 This OpenSSL document说明了如何为此密钥生成私钥和证书请求(CSR)。使用此CSR,CA服务应该能够颁发签名证书来签署.mobileconfig文件。
这是从CA获取证书的最常见过程,但您应该联系CA操作人员以了解证书颁发的确切过程。