【发布时间】:2014-02-10 14:20:09
【问题描述】:
我尝试并尝试生成一个 .pem 文件,每次都从客户的帐户生成证书,然后使用终端生成 .pem 文件,但它没有用。谁能给个分步流程?
【问题讨论】:
标签: ios push-notification apple-push-notifications pem
我尝试并尝试生成一个 .pem 文件,每次都从客户的帐户生成证书,然后使用终端生成 .pem 文件,但它没有用。谁能给个分步流程?
【问题讨论】:
标签: ios push-notification apple-push-notifications pem
要为您的 iOS 应用启用推送通知,您需要创建 Apple 推送通知证书(.pem 文件)并将其上传给我们,以便我们能够代表您连接到 Apple 推送服务器。
(Updated version with updated screen shots Here)
第一步:登录iOS Provisioning Portal,点击左侧导航栏的“证书”。然后,点击“+”按钮。
第 2 步:在 Distribution 部分选择 Apple Push Notification service SSL (Production) 选项,然后点击“Continue”按钮。
第 3 步:选择您要用于 BYO 应用的 App ID(如何创建 App ID),然后点击“继续”进入下一步。
第 4 步:按照“关于创建证书签名请求 (CSR)”的步骤创建证书签名请求。
补充 Apple 提供的说明。以下是一些额外的屏幕截图,可帮助您完成所需的步骤:
第 4 步补充屏幕截图 1:导航到 Mac 上 Keychain Access 的证书助手。
第四步补充截图2:填写证书信息。点击继续。
第五步:上传第四步生成的“.certSigningRequest”文件,然后点击“生成”按钮。
第六步:点击“完成”完成注册,iOS Provisioning Portal 页面将刷新,如下图所示:
然后单击“下载”按钮下载您刚刚创建的证书(.cer 文件)。 - 双击下载的文件,将证书安装到 Mac 上的 Keychain Access 中。
第 7 步:在您的 Mac 上,转到“钥匙串”,查找您刚刚安装的证书。如果不确定哪个证书是正确的,则应以“Apple Production IOS Push Services:”开头,后跟您应用的捆绑包 ID。
第 8 步:展开证书,您应该会看到带有您的姓名或公司名称的私钥。使用键盘上的“选择”键选择这两个项目,右键单击(如果使用单键鼠标,则单击 cmd-click),选择“导出 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 文件)!稍后您需要将此文件上传到我们的 Build Your Own 区域。 :)
【讨论】:
今天有更简单的解决方案 - pem。这个工具让生活变得更轻松。
例如,要生成或更新您的推送通知证书,只需输入:
fastlane pem
不到一分钟就搞定了。如果您需要沙盒证书,请输入:
fastlane pem --development
那就太好了。
【讨论】:
$ cd Desktop
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
【讨论】:
谢谢!以上所有答案。 我希望你有一个 .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 CERTIFICATE 到 END CERTIFICATE)以及证书私钥(从 BEGIN PRIVATE KEY 到 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)来检查证书的有效性,以获取有关证书的所有信息,如下所示:
【讨论】:
导出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
上述命令对沙盒和生产都很有用。
【讨论】:
根据Troubleshooting Push Certificate Problems
您的 Apple Developer Program 帐户中可用的 SSL 证书包含公钥,但不包含私钥。私钥仅存在于创建上传到 Apple 的证书签名请求的 Mac 上。公钥和私钥都是导出隐私增强邮件 (PEM) 文件所必需的。
您无法从客户端提供的证书中导出工作 PEM 的原因可能是您没有私钥。证书包含公钥,而私钥可能只存在于创建原始 CSR 的 Mac 上。
您可以:
或
【讨论】: