我从iPhone开发人员门户中导出了“aps_developer_identity.cer”证书。它们都是使用相同的证书签名请求和(因此)相同的私钥创建的。如果我仅从Apple密钥链中导出私钥,则可以获取私钥和'aps_developer_identity.cer'并使用openssl创建可在(Windows)服务器上使用的合并的p12 / pkcs#12证书。
明确地说,我知道如何通过将私钥和证书一起导出来从 key 链中获取合并的p12,但是我想尽可能删除所有多余的鼠标单击和键入。
最佳答案
我设法解决了这个问题,它只需要封装在一个shell脚本中就可以了。
我假设您已经下载并重命名了“apple_developer_identity.cer”证书,这里我使用“test.cer”,并且您还从钥匙串(keychain)中导出了开发者密钥,在下面的示例中名为“private_dev_key.p12”。
#convert *.cer (der format) to pem
openssl x509 -in test.cer -inform DER -out test.pem -outform PEM
#convert p12 private key to pem (requires the input of a minimum 4 char password)
openssl pkcs12 -nocerts -out private_dev_key.pem -in private_dev_key.p12
# if you want remove password from the private key
openssl rsa -out private_key_noenc.pem -in private_key.pem
#take the certificate and the key (with or without password) and create a PKCS#12 format file
openssl pkcs12 -export -in test.pem -inkey private_key_noenc.pem -certfile _CertificateSigningRequest.certSigningRequest -name "test" -out test.p12
注意:如果您认为这有点麻烦,只需单击几下鼠标并键入文件名即可完成操作,那么请考虑您有20个要启用通知的应用程序的情况。每个应用都有开发和生产证书,分别在4个月和12个月内到期。这是一个非常无聊且容易出错的工作...
关于openssl - aps_developer_identity.cer到p12,而不必从钥匙串(keychain)导出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1453286/