iPhone推送通知证书

时间:2011-09-13 18:45:43

标签: iphone push-notification

我正在尝试创建允许我在设备上发送推送通知的证书,但我完全丢失了。我已经使用了BETA和分发证书,但添加推送通知很痛苦。

当我为BETA测试创建证书时,我会执行以下步骤。

  1. 从钥匙串中,从证书颁发机构申请证书。
  2. 在“证书”下的Apple Provisioning Portal中,创建证书上载文件密钥链文件。
  3. 假设APP ID已完美创建且设备已准备就绪。
  4. 在Provisioning下的Apple Provisioning Portal中,我创建了一个新配置文件并下载了移动配置文件以添加到XCode管理器。
  5. 以上步骤有效,我可以进行BETA测试。现在为了启用推送通知,我有一个使用推送通知进行测试的设置服务器,并且100%正常工作。当我配置推送通知时,我需要上传密钥链文件。这是我在证书下上传的文件吗?有一个文件作为回报,我双击它,它被添加到钥匙串,我做得对吗?

1 个答案:

答案 0 :(得分:6)

如果我正确理解你的问题,答案是否定的,它不应该是同一个文件。我将详细解释整个过程,希望能够澄清情况(以及接下来需要做什么)。

启用推送通知时,您需要做四件事:

  1. 创建私钥/公钥对。
  2. 使用您的私钥创建证书签名请求(CSR)。
  3. 将CSR提交给Apple并下载已签名的证书。
  4. 创建包含证书和私钥的文件,以验证每个APN请求。
  5. 有些观点:

    • 我建议您使用不同的密钥进行开发(沙箱)和生产APN。如果要向不同的应用程序发送通知,则可以重新使用密钥,但如果不在开发和生产之间重复使用密钥则更安全。
    • 您“提交”到配置门户的文件是证书请求。每个证书都有一个CSR文件。您将为每个应用程序(bundleID)创建两个CSR;一个用于开发,一个用于生产。使用您的开发密钥创建的CSR应提交开发,并且应使用您的生产密钥创建CSR以进行生产 注意:保留CSR文件。您不必拥有它们,但是当您需要重新发送证书请求时,它将为您节省一些时间。
    • 提交CSR后,您可以下载实际证书。他们还没有准备立即,所以给Apple一分钟左右然后刷新浏览器。 CSR和证书之间的区别很重要:证书由Apple签署;它验证您发送推送通知的能力。下载证书并将其加载到您的钥匙串中(双击即可) 注意:没有您的私钥,证书是无用的;因此,如果您更换计算机,则需要安全地导出私钥。
    • 任何发送APN请求的计算机都需要私钥和证书。您可以使用Keychain Access将它们导出为单个.p12文件。 (我将我的名字命名为MyAppCertKey.p12,表明该文件包含证书密钥。)
    • 最后,我写了关于测试/验证与Apple服务器(来自终端)的通信的详细说明。这有点复杂,因为您需要为openssl设置一些根证书才能进行验证;但是,它会告诉您是否正在与服务器正确通信,而不需要对接收应用程序本身进行任何操作。

      Couldn't able to connect to APNS Sandbox server

    希望有所帮助。