关于能够在我的Windows服务器上创建一个p12文件,我遇到了一些严重的问题。
我使用了两个不同的网站来帮助我解决我需要做的事情:
http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1
我使用的第二个网站是网站内的评论如下:
首先,我创建一个证书签名请求。 然后我将其上传到我的应用程序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
请任何人知道我做错了什么我很厌烦绕圈子。
当我将证书上传到服务器并将ad-hoc版本从设备上的应用程序中删除时,我仍然没有收到我发送的任何通知
提前致谢。
答案 0 :(得分:0)
查看此答案是否有助Creating .pem file for APNS?
简而言之:openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts
答案 1 :(得分:0)
首次生成CSR时,您使用私钥进行了操作。根据您的操作方式,这可能是不透明的。我所做的是使用openssl生成密钥,然后使用该密钥创建CSR。当你制作p12时,那个键就是'in key'。
以下是我的步骤
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"
从这里开始,您将访问developer.apple.com并撤销当前的APN证书并制作新证书。它会询问您的CSR,当它完成时它会给你一个.cer文件。
将.cer文件转换为DER格式的.pem文件(假设aps_development.cer是您从Apple开发者网站下载的文件)。
openssl x509 -in aps_development.cer -inform DER -outform PEM -out aps_development.pem
openssl pkcs12 -export -in aps_development.pem -inkey aps_development.key -out aps_development.p12