我该如何为iPhone生成推送通知的pem文件?

13

使用此 link 生成推送通知的pem文件,但我无法理解以下步骤...

在服务器上安装SSL证书和密钥

您应该在运行提供程序代码并从中连接到APNs沙盒或生产版本的服务器计算机上安装之前获取的SSL分发证书和私有加密密钥。要这样做,请完成以下步骤:

  1. 打开Keychain Access实用程序并单击左窗格中的“我的证书”类别。

  2. 找到要安装的证书并公开其内容。 您将看到证书和私钥。

  3. 选择证书和密钥,选择“文件”>“导出项目”,并将它们导出为个人信息交换(.p12)文件。

  4. 使用Ruby和Perl等语言实现的服务器通常更能够处理个人信息交换格式的证书。 要将证书转换为此格式,请执行以下步骤:

    • 在KeyChain Access中,选择证书并选择“文件”>“导出项目”。 选择个人信息交换(.p12)选项,选择保存位置,然后单击保存。

    • 启动终端应用程序,在提示符后输入以下命令:openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes。

  5. 将 .pem 证书复制到新计算机并将其安装在适当的位置。


在第3步中选择了哪两个证书? - nitin kachhadiya
6个回答

12

最终,我解决了生成推送通知证书的问题。

生成推送通知证书的完整步骤如下:

1)打开钥匙串并请求以下图像中显示的证书。

enter image description here

2)将公共名称更改为项目名称。

enter image description here

3)在钥匙串中打开密钥,您可以显示两个密钥:公钥和私钥。

enter image description here

4)右键单击私钥并将其导出。

enter image description here

5)将名称设置为project_name_key.p12

6)添加密码ex-1234

7)输入系统登录密码并保存。现在您有以下证书。

enter image description here

8)现在转到开发人员帐户(https://developer.apple.com/devcenter/ios/index.action),如果不存在则创建新的标识符并编辑设置。

enter image description here enter image description here

如果推送通知被禁用,则从编辑中启用它。

enter image description here

9)对于开发,您可以创建第一个;对于分发,您可以选择最后一个。

enter image description here enter image description here

10)选择并生成下载APNS证书,然后将其放入桌面并双击打开。

11)然后打开钥匙串并转到证书。您可以显示推送服务,然后显示私钥。

使用1234密码导出它。

enter image description here

12)现在您有以下文件。

enter image description here

13)打开终端并转到桌面。

enter image description here

14)使用下面的行为push_cert.p12文件生成.pem文件。

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

然后输入密码:-1234

输入图像描述

15)使用以下行生成 .pem 文件,用于 project_name_key.p12 文件。

openssl pkcs12 -nocerts -out apns-dev-key.pem -in project_name_key.p12

然后输入密码:-1234 输入PEM密码短语:1234 验证 - 输入PEM密码短语:1234

在这里输入图像描述

16)在终端中输入以下3行

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

输入 apns-dev-key.pem 的密码短语:1234

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

图像描述

17) 你拥有以下证书。

图像描述

18) 把apns-dev.pem文件发送到服务器并输入密码1234

19) 在开发过程中,你必须使用gateway.sandbox.push.apple.com服务器。对于发布,你可以使用gateway.push.apple.com服务器。


抱歉,我不清楚“将.pem文件发送到服务器”是什么意思。我需要使用php从Apache服务器生成推送通知。我是否需要将此文件放在我的服务器目录中,并从我的php代码中引用它? - Nowdeen

10

对于 **

  • 生产推送通知

**

我参考了这个链接

要为您的iOS应用程序启用推送通知,您需要创建并上传Apple Push Notification证书(.pem文件)给我们,以便我们能够代表您连接到Apple Push服务器。

(更新版本附有更新的屏幕截图,请查看http://www.apptuitions.com/generate-pem-file-for-push-notification/

步骤1:登录iOS Provisioning Portal,单击左侧导航栏上的“证书”。然后,单击“+”按钮。

enter image description here

enter image description here

enter image description here

步骤2:在发布部分下选择Apple推送通知服务SSL(生产)选项,然后单击“继续”按钮。 enter image description here 步骤3:选择要用于BYO应用的App ID(如何创建App ID),然后单击“继续”进入下一步。

enter image description here

步骤 4:按照“关于创建证书签名请求(CSR)”的步骤创建证书签名请求。 在此输入图片描述

为了补充苹果提供的说明,以下是一些额外的屏幕截图,以帮助您完成所需的步骤:

步骤 4 补充屏幕截图 1:在您的 Mac 上导航到密钥串访问的证书助手。

enter image description here

第四步 补充截图2:填写证书信息。点击“继续”。

enter image description here

Step 5:上传在第4步中生成的“.certSigningRequest”文件,然后单击“Generate”按钮。 enter image description here Step 6:单击“Done”完成注册,iOS Provisioning Portal页面将被刷新,看起来像以下屏幕: enter image description here 然后单击“Download”按钮下载您刚创建的证书(.cer文件)。- 双击下载的文件将证书安装到Mac上的Keychain Access中。
步骤7:在您的Mac上,进入“钥匙串”,查找您刚刚安装的证书。如果不确定哪个证书是正确的,请查看以“Apple Production IOS Push Services:”开头,后跟您的应用程序包ID的证书。 enter image description here 步骤8:展开证书,您应该会看到带有您的姓名或公司名称的私钥。使用键盘上的“选择”键选择两个项目,右键单击(如果使用单键鼠标,则为cmd-click),选择“导出2个项目”,如下所示: enter image description here 然后将名为“pushcert.p12”的p12文件保存到桌面 - 现在您将被提示输入密码以保护它,您可以单击Enter跳过密码或输入所需的密码。

步骤 9:现在是最困难的部分 - 在您的 Mac 上打开“终端”,并运行以下命令:

cd
cd Desktop
openssl pkcs12 -in pushcert.p12 -out pushcert.pem -nodes -clcerts

第十步: 通过使用此链接(点击这里)来进行操作

您可以检查.PEM文件是否有效——如果有效,您将收到成功消息并得到通知,例如: enter image description here

对于**

  • 开发推送通知

**

请观看以下Youtube链接点击这里并享受..


在我的情况下,只导出证书(私钥的父级)就可以了。导出证书和私钥都不行。 - Gautam Jain

6
这是第三步中要选择的截图。它不是两个证书,而是一个证书和一个密钥。 输入图像描述

在导出密钥和证书.p12之后,我要如何使用终端生成.pem文件。 - Shakti
@Shakti 我自己从未尝试过,但你试过 openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes 吗? - Eran
是的,我尝试通过导入证书和密钥来完成。一旦我得到了 mypushdev.p12 证书,我就打开终端并输入了这个命令 openssl pkcs12 -in mypushdev.p12 -out mypushdev.pem -nodes。 - Shakti

4
我建议使用更简单的解决方案。只需使用Certifire即可。
Certifire是一款macOS应用程序,可以在几秒钟内仅需一次点击生成Apple推送通知证书。

这里是步骤:
1.下载该应用程序。
2.使用您的Apple开发者帐户凭据登录。
3.选择App-ID。
4.单击“生成”按钮。
5.完成!

您将获得.pem格式的APN证书以及.p12格式的证书。 更重要的是,您还将获得.pem和.p12的组合(密钥+证书)!
更多的是,您也将获得这些证书的无密码版本!

enter image description here

enter image description here


1
这太棒了!!! - Arsen Sench

1

补充一下@Nitin非常详细的答案。创建pem文件后,您可以使用以下命令验证它: openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert MyKey.pem -key MyKey.pem 其中MyKey是您的pem文件的名称。

将gateway.sandbox.push.apple.com替换为gateway.push.apple.com,以连接到实时APNS。


0
  1. 右键单击您的APNs证书,然后单击导出。这将在桌面上生成.p12证书
  2. 打开终端cd桌面并使用以下命令将.p12转换为.pem

    openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes -clcerts

    如图所示


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