生成.pem文件用于设置Apple PUSH通知

时间:2014-01-21 06:12:21

标签: ios push-notification apple-push-notifications pem

我尝试生成.pem文件,每次从客户端帐户生成certificates,然后使用终端生成.pem文件,但它没用。我遵循了许多相同的链接。如果任何人知道如何生成.pem或者有任何链接为.pem生成一步一步的程序,请帮助我。

7 个答案:

答案 0 :(得分:893)

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

(的 Updated version with updated screen shots Here

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

enter image description here

步骤2:在“分发”部分下选择Apple推送通知服务SSL(生产)选项,然后单击“继续”按钮。

enter image description here

步骤3:选择要用于BYO应用的应用ID(如何创建应用ID),然后单击“继续”转到下一步。

enter image description here

步骤4:按照“关于创建证书签名请求(CSR)”步骤创建证书签名请求。

enter image description here

补充Apple提供的说明。以下是一些帮助您完成所需步骤的其他屏幕截图:

步骤4补充屏幕截图1:导航到Mac上的Keychain Access证书助理。

enter image description here

步骤4补充屏幕截图2:填写证书信息。点击继续。

enter image description here

步骤5:上传步骤4中生成的“.certSigningRequest”文件,然后单击“生成”按钮。

enter image description here

步骤6:点击“完成”完成注册,iOS设置门户页面将刷新,如下图所示:

enter image description here

然后单击“下载”按钮下载刚刚创建的证书(.cer文件)。 - 双击下载的文件,将证书安装到Mac上的Keychain Access中。

步骤7:在Mac上,转到“Keychain”,查找刚刚安装的证书。如果不确定哪个证书是正确的,它应该以“Apple Production IOS Push Services:”开头,然后是应用程序的捆绑ID。

enter image description here

步骤8:展开证书,您应该看到带有您的姓名或公司名称的私钥。使用键盘上的“选择”键选择这两个项目,右键单击(如果使用单键鼠标,则单击cmd键),选择“导出2项”,如下所示:

enter image description here

然后将名为“pushcert.p12”的p12文件保存到桌面 - 现在系统会提示您输入密码来保护它,您可以单击Enter跳过密码或输入所需的密码。

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

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

步骤10:从桌面删除pushcert.p12,以避免误将其上传到Build Your Own区域。在Mac上打开“终端”,然后运行以下命令:

cd
cd Desktop
rm pushcert.p12

步骤11 - 新AWS更新:创建新的pushcert.p12以提交给AWS SNS。双击新的pushcert.pem,然后只在绿色上输出一个高亮的。

enter image description here 信用:AWS new update

现在您已成功创建Apple推送通知证书(.p12文件)!您需要稍后将此文件上传到我们自己构建的区域。 :)

答案 1 :(得分:73)

今天有一个更简单的解决方案 - pem。这个工具让生活更轻松。

例如,要生成或续订推送通知证书,只需输入:

fastlane pem 

它在不到一分钟的时间内完成。如果您需要沙箱证书,请输入:

fastlane pem --development

那很漂亮。

答案 2 :(得分:7)

$ cd Desktop
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem

答案 3 :(得分:0)

导出Cert.p12和key.p12后非常简单, 请在下面找到生成'apns'.pem文件的命令。

https://www.sslshopper.com/ssl-converter.html

command to create apns-dev.pem from Cert.pem and Key.pem

    

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

    

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

以上命令对Sandbox和Production都很有用。

答案 4 :(得分:0)

根据Troubleshooting Push Certificate Problems

  

Apple Developer Program帐户中可用的SSL证书包含一个公共密钥,但没有一个私有密钥。私钥仅在创建了上载到Apple的证书签名请求的Mac上存在。公钥和私钥都是导出增强隐私邮件(PEM)文件所必需的。

可能是您无法从客户端提供的证书中导出有效的PEM的原因是您没有私钥。证书包含公钥,而私钥可能仅存在于创建原始CSR的Mac上。

您可以:

  1. 尝试从最初创建CSR的Mac上获取私钥。可以从该Mac导出PEM,也可以将私钥复制到另一个Mac。

  1. 创建一个新的CSR,新的SSL证书,然后备份私钥。

答案 5 :(得分:0)

Apple已更改了颁发的证书的名称。现在,您可以将同一证书用于开发和生产。虽然您仍然可以申请仅开发证书,但是您不再可以申请仅生产证书。

please see below screnshot

答案 6 :(得分:0)

谢谢!以上所有答案。 我希望您有一个.p12文件。现在,打开终端写入以下命令。将终端设置为放置.12文件的路径。

$ openssl pkcs12 -in yourCertifcate.p12 -out pemAPNSCert.pem -nodes
Enter Import Password: <Just enter your certificate password>
MAC verified OK

现在,您的 .pem 文件已生成。

验证.pem文件 首先,在文本编辑器中打开.pem以查看其内容。证书内容的格式应如下所示。确保pem文件同时包含证书内容(从BEGIN证书到END CERTIFICATE)以及证书私钥(从BEGIN私钥到END PRIVATE KEY):

> Bag Attributes
>     friendlyName: Apple Push Services:<Bundle ID>
>     localKeyID: <> subject=<>
> -----BEGIN CERTIFICATE-----
> 
> <Certificate Content>
> 
> -----END CERTIFICATE----- Bag Attributes
>     friendlyName: <>
>     localKeyID: <> Key Attributes: <No Attributes>
> -----BEGIN PRIVATE KEY-----
> 
> <Certificate Private Key>
> 
> -----END PRIVATE KEY-----

此外,您还可以通过转到SSLShopper Certificate Decoder来检查证书的有效性,并粘贴证书内容(从BEGIN CERTIFICATE到END CERTIFICATE)以获取有关证书的所有信息,如下所示:

enter image description here