iOS-如何检查pem文件是否有效?

iOS-如何检查pem文件是否有效?,ios,apple-push-notifications,Ios,Apple Push Notifications,我已经创建了开发和生产pem文件。我遵循以下步骤: 1) developer.apple.com:AppIDs部分检查捆绑包id支持开发SSL证书 如果否,则创建该证书(支持APNS) 2) 开放式钥匙链 3) 右键单击我们的证书和出口证书 4) 您将从这里获得.p12文件:like:hope\u APNS.p12 5) 打开控制台(终端)并运行以下命令(使用此处创建的.p12文件作为输入) openssl pkcs12-在apns-dev-cert.p12中-在apns-dev-cert.pe

我已经创建了开发和生产pem文件。我遵循以下步骤:

1) developer.apple.com:AppIDs部分检查捆绑包id支持开发SSL证书 如果否,则创建该证书(支持APNS)

2) 开放式钥匙链

3) 右键单击我们的证书和出口证书

4) 您将从这里获得.p12文件:like:hope\u APNS.p12

5) 打开控制台(终端)并运行以下命令(使用此处创建的.p12文件作为输入) openssl pkcs12-在apns-dev-cert.p12中-在apns-dev-cert.pem中-节点-CLCERT

6) 您将获得相同的.pem文件。(如hope_APNS.pem)


开发pem文件工作正常。但生产pem文件中有一些。当我设置生产pem文件并从控制台发送推送通知时。我不会在我的设备上获得推送通知。

有很多原因导致您无法通过设备上的production.pem证书获得推送通知。除了确保正确生成了不同的生产证书外,还需要检查以下几点:

  • 您在测试设备上运行了一个特别构建或分发构建 在测试生产证书时
  • 你已经成功了 已收集所述设备的生产推送令牌(将 始终与开发推送令牌不同)
  • 您可以连接到Apple推送通知生产服务器 (gateway.push.apple.com,端口2195)和新证书(即/ 您可以打开套接字连接,但它不会关闭 立即)
  • 您已检查您的证书是否未过期
  • 如果所有这些都失败了,那么当您通过该证书发送内容时,您确实需要检查网络级别上发生了什么。如果它无效,它将根本无法连接到苹果。如果它是有效的,但Apple无法识别您发送的推送令牌,则将返回错误代码(如果您使用的是二进制接口),或者连接将被切断。您可能还希望深入调查,以便更深入地了解出了什么问题


    您可能想查看答案和其他答案以获得更多提示。

    这是一个老问题,但我一直在寻找相同的答案,希望此解决方案能帮助某人。。。为我工作

    您可以使用以下命令测试PEM密钥,如果成功,应挂起该命令,直到按enter键:

    openssl s_客户端-connect gateway.sandbox.push.apple.com:2195-cert pnpush.pem-key pnpush.pem

    上述测试在沙箱模式下测试PEM密钥。对于生产模式,请使用以下命令:

    openssl s_客户端-connect gateway.push.apple.com:2195-cert pnpush.pem-key pnpush.pem


    多亏了Craig at

    ,使用此工具可以非常轻松地检查PEM文件(开发和分发):


    如果要测试pem文件,没有任何方法可以测试。唯一的方法是在收到响应和检查错误的同时发送PushNotification,尝试解决问题。如果您正确地遵循所有步骤,则不会发生任何错误,因为将该答案中的所有步骤引用到开发中,push令牌与生产中的不同。您是否使用相同的令牌?@muku我使用了不同的令牌,我知道用于开发和生产的推送令牌是不同的。@Nimit Parekh我遵循了以下步骤。在我的例子中,dev-pem文件工作得很好。但在生产pem文件中,它会产生一些问题。通过终端上的命令可以检查pem文件是否正确。我已经在终端上检查过了。我已经撤销了生产pem文件并创建了一个新的。它解决了我的问题。这应该是答案。链接不起作用,共享PEM文件似乎是个冒险的建议?