0

在创建 p12 文件以放置在我的 Windows 服务器上时,我遇到了一些严重的问题。

我使用了两个不同的网站来帮助我确定我需要做什么:

http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1

我使用的第二个网站是来自网站内的评论如下:

http://arashnorouzi.wordpress.com/2011/06/19/sending-apple-push-notifications-in-asp-net-and-c-–-part-4-apns-sharp-c-wrapper-class/

首先,我创建一个证书签名请求。然后我将它上传到我的应用程序 ID,它允许我生成 ape_dev 证书。然后我转到我的钥匙串并导航到我导出刚刚创建的 .p12 证书的“钥匙”。

我现在有三个不同的文件

我的 p12 文件、我的开发证书和我的证书签名请求。

然后我打开终端并输入以下内容:

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

然后这会创建一个新的 pem 证书。

我输入的内容如下

$ openssl pkcs12 -nocerts -out PushChatKey.pem -in PushChatKey.p12

它提示我输入密码,我使用与创建证书时相同的密码。

完成此操作后,我留下了 2 个新文件,它们都是 PEM 文件。

我需要将这两个 PEM 文件合并到一个 p12 文件中,以便它能够在我的 Windows 服务器上工作。

我尝试使用以下行组合它

openssl pkcs12 -export \
-in aps_developer_identity.pem \
-out aps_developer_identity.p12  \
-inkey APSCertificates.pem

这实际上有效并给了我一个 p12 文件。然后我切换回他的 raywenderlich 网站并输入以下内容:

$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 
-cert PushChatCert.pem -key PushChatKey.pem

它加载但我收到以下错误:

error:num=20:unable to get local issuer certificate

请有没有人知道我做错了什么,我厌倦了兜圈子。

当我将证书上传到服务器并将临时版本从设备上的应用程序中删除时,我仍然没有收到我发送的任何通知

提前致谢。

4

2 回答 2

0

当您第一次生成 CSR 时,您使用的是私钥。这可能是不透明的,具体取决于您的操作方式。我所做的是使用 openssl 生成密钥,然后使用该密钥生成 CSR。当您制作 p12 时,该键就是“输入键”。

这是我的步骤

  1. 第一步是生成证书签名请求。这与任何 SSL 证书相同。为此,您将需要一个私钥。

openssl genrsa -out aps_development.key -passout pass:foobar 2048

然后您可以使用刚刚创建的密钥创建 CSR

openssl req -new -key aps_development.key -out CertificateSigningRequest.certSigningRequest -subj "/emailAddress=yourAddress@example.com, CN=John Doe, C=US"

  1. 从这里您将访问 developer.apple.com 并撤销当前的 APN 证书并创建一个新证书。它会询问您的 CSR,完成后会给您一个 .cer 文件。

  2. 将 .cer 文件转换为 DER 格式的 .pem 文件(假设 aps_development.cer 是您从 Apple 开发者网站下载的文件)。

openssl x509 -in aps_development.cer -inform DER -outform PEM -out aps_development.pem

  1. 将 .pem 转换为 .p12。您会注意到您正在提供您在第 1 步开始时创建的密钥文件。您将需要在那里提供的密码。

openssl pkcs12 -export -in aps_development.pem -inkey aps_development.key -out aps_development.p12

于 2015-05-01T17:10:41.553 回答
0

看看这个答案是否有助于为 APNS 创建 .pem 文件?

简而言之:openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts

于 2013-09-24T12:42:06.850 回答