我尝试生成.pem
文件,每次从客户端帐户生成certificates
,然后使用终端生成.pem
文件,但它没用。我遵循了许多相同的链接。如果任何人知道如何生成.pem
或者有任何链接为.pem
生成一步一步的程序,请帮助我。
答案 0 :(得分:893)
要为您的iOS应用启用推送通知,您需要创建并上传Apple推送通知证书(.pem文件),以便我们代表您连接Apple推送服务器。
(的 Updated version with updated screen shots Here 强>)
步骤1:登录iOS Provisioning Portal,单击左侧导航栏中的“证书”。然后,单击“+”按钮。
步骤2:在“分发”部分下选择Apple推送通知服务SSL(生产)选项,然后单击“继续”按钮。
步骤3:选择要用于BYO应用的应用ID(如何创建应用ID),然后单击“继续”转到下一步。
步骤4:按照“关于创建证书签名请求(CSR)”步骤创建证书签名请求。
补充Apple提供的说明。以下是一些帮助您完成所需步骤的其他屏幕截图:
步骤4补充屏幕截图1:导航到Mac上的Keychain Access证书助理。
步骤4补充屏幕截图2:填写证书信息。点击继续。
步骤5:上传步骤4中生成的“.certSigningRequest”文件,然后单击“生成”按钮。
步骤6:点击“完成”完成注册,iOS设置门户页面将刷新,如下图所示:
然后单击“下载”按钮下载刚刚创建的证书(.cer文件)。 - 双击下载的文件,将证书安装到Mac上的Keychain Access中。
步骤7:在Mac上,转到“Keychain”,查找刚刚安装的证书。如果不确定哪个证书是正确的,它应该以“Apple Production IOS Push Services:”开头,然后是应用程序的捆绑ID。
步骤8:展开证书,您应该看到带有您的姓名或公司名称的私钥。使用键盘上的“选择”键选择这两个项目,右键单击(如果使用单键鼠标,则单击cmd键),选择“导出2项”,如下所示:
然后将名为“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
,然后只在绿色上输出一个高亮的。
现在您已成功创建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上。
您可以:
或
答案 5 :(得分:0)
答案 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)以获取有关证书的所有信息,如下所示: