创建.pem文件用于推送通知?

11

我有一个iPhone应用程序,其中我正在实现推送通知。为此,我创建了csr文件、p12文件和生产cer文件,启用了应用程序ID的推送通知,并下载了配置文件。当我在设备上运行时,我收到一个注册通知,但是当我将来自证书的pem文件和来自p12密钥的pem文件合并,并生成另一个pem文件放在我的服务器上,推送通知就无法传递到我的手机。我在终端上使用以下命令创建文件。

openssl x509 -in aps_production.cer -inform der -out phoneapp.pem 

openssl pkcs12 -nocerts -out phoneappKey.pem -in veapp.p12

cat phoneapp.pem phoneappKey.pem > applicationwebservice.pem

有人可以帮我正确获取pem文件吗?


在这里:https://dev59.com/1XI-5IYBdhLWcg3wn5y5#1762824,尝试这个。 - George
3个回答

37

获取p12文件后,需要通过在终端执行以下命令将其转换为PEM格式:

openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

如果您希望删除密码短语,可以在导出/转换时不设置密码短语,或执行以下操作:

openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem

最后,您需要将密钥和证书文件合并为一个apns-dev.pem文件,我们在连接到APNS时会使用它:

cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem

这是获取pem文件的方法,有关详细信息,请参阅我的博客


1
完美,也帮助了我。谢谢。 - Jeff Stone
2
我必须使用“openssl pkcs12 -nocerts -in apple_push_dev.p12 -nodes -out y.pem”才能以未加密的形式推送密钥(OpenSSL 1.0.1f)。 - NickZoic

11

尝试使用以下命令:

openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12

openssl pkcs12 -nocerts -out key.pem -in key.p12

openssl rsa -in key.pem -out key.unencrypted.pem

cat cert.pem key.unencrypted.pem > ck.pem

2
为创建.pem文件,您需要按照以下简单步骤进行操作。
请看下面的内容。
第1步:登录开发者帐户,进入Provisioning Portal,单击“Certificates”。然后,单击“+”按钮。
第2步:在Distribution部分下选择Apple Push Notification服务SSL(Production)选项,然后单击“Continue”。
第3步:选择您要用于BYO应用程序的App ID(如何创建应用程序ID),然后单击“Continue”以进入下一步。
第4步:按照“关于创建证书签名请求(CSR)”的步骤来创建证书签名请求。
第5步:上传在第4步中生成的“.CSR”文件,然后单击“Generate”。
第6步:单击“Done”完成注册,iOS Provisioning Portal页面将更改UI。
第7步:现在转到“Keychain”,查找您刚安装的证书。如果不确定哪个证书是正确的,则应以“Apple Production IOS Push Services:”开头,后跟您的应用程序包ID。
第8步:展开证书,您应该会看到带有您的姓名或公司名称的私钥。使用键盘上的“Select”键选择两个项目,右键单击(如果您使用单键鼠标,则为cmd-click),选择“Export 2 items”。然后将p12文件保存为“yourselectedname.p12”到您的桌面 - 现在您将被提示输入密码以保护它,您可以单击Enter跳过密码或输入所需的密码。
第9步:现在在Mac上打开“终端”,并运行以下命令: CD CD桌面 OpenSSL pkcs12 -in pushcert.p12 -out pushcert.pem -nodes -clcerts
**完成,您已成功创建了Apple Push Notification证书(.pem文件)!**

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