如何创建一个.pem文件以存储在托管服务器中以获取APN有效载荷数据?为APNS创建.pem文件?
回答
下面是我做的,从:blog.boxedice.com和乔佩齐罗的“iPhone高级项目”第10章。
随着在钥匙串aps_developer_identity.cer:从您的本地Mac和从登录钥匙串
- 启动钥匙串访问,过滤器由证书类别。您将看到一个名为“Apple Development推送服务”的可扩展选项
- 右键单击“Apple开发推送服务”>导出“Apple开发推送服务ID123”。将此文件另存为
apns-dev-cert.p12
文件,您可以在其中访问它。无需输入密码。 下一个命令生成Mac的终端PEM格式(增强保密邮件安全证书)的证书:
openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts
在通过使用chmod 400设置这种未加密的密钥的文件权限的服务器。
我已经按照上述步骤,现在它的工作。我已经保持证书和我的本地Web服务器上的PHP脚本(Xampp)。 我能够得到设备令牌,并且我在php脚本中使用它。 php脚本能够连接并发送有效载荷数据。但仍然无法获得PUSH通知。 问题是什么?通知是否需要时间才能达到? – Biranchi 2009-11-19 12:16:42
'chmod 400' YES !!!!!!这是我需要做的 – 2012-08-28 14:50:09
使用这个,我也创建了键和修改的权限。但是,我仍然无法连接到APNS服务器,并且反馈命令仍然返回'#
- >>Apple's own tutorial < < - 是我遇到的唯一一套工作指令。它直截了当,我可以证实它在linux php服务器和windows php服务器上的出色工作。
您可以在页面底部找到他们的5步pem创建过程。
启动的终端应用程序后输入以下命令提示符
openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes
生成一个p12后,这应该是答案。 – Stone 2015-11-08 21:34:44
这是我做到了在Windows 7上,安装OpenSSL(链接后进入Win32的安装程序,选择最新版本而不是轻的版本)。
使用此方法,您只需要从Apple下载的.cer
文件。
c:\OpenSSL-Win32\bin\openssl.exe x509 -in aps_development.cer -inform DER -out developer_identity.pem -outform PEM
这将创建一个文件,然后您将需要添加您的私钥。
----- BEGIN PRIVATE KEY -----
MIIEuwIBADANBgkqhk ....等
MIIEuwIBADANBgkqhk ....等
MIIEuwIBADANBgkqhk ....等
MIIEuwIBADANBgkqhk ....等
----- END PRIVATE KEY -----
----- BEGIN CERTIFICATE -----
AwIBAgwIBADAwIBADA ....等
AwIBAgwIBADAwIBADA ....等
AwIBAgwIBADAwIBADA。 ...等
----- END CERTIFICATE -----
就是这样。
步骤:
- 创建CSR使用钥匙链访问
- 创建P12使用钥匙链访问使用私钥
- APNS应用程序ID和证书
这给了你三个文件:
- The C SR
- 私钥为P12文件(
PushChatKey.p12
) - 的SSL证书,
aps_development.cer
前往您下载的文件,在我的情况下,桌面上的文件夹:
$ cd ~/Desktop/
将.cer文件转换为.pem文件:
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
私钥的.p12文件转换为.pem文件:
$ openssl pkcs12 -nocerts -out PushChatKey.pem -in PushChatKey.p12
输入导入口令:
MAC verified OK Enter PEM pass phrase: Verifying - Enter PEM pass phrase:
首先,您需要输入密码的中.P12文件,以便openssl可以读取它。然后,您需要输入一个新的密码,用于加密PEM文件。本教程再次使用“pushchat”作为PEM密码。你应该选择更安全的东西。 注意:如果您未输入PEM密码,openssl将不会提供错误消息,但生成的.pem文件不会在其中包含私钥。
最后,结合证书和密钥到单个的.pem文件:
$ cat PushChatCert.pem PushChatKey.pem > ck.pem
发展阶段:
第1步:从证书的.p12
创建证书.PEM 指挥:openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12
第2步:从Key创建密钥.pem。P12
命令:openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
步骤3:可选(如果你想删除第二步问口令)
命令:openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem
第4步:现在我们有合并Key.pem和Certificate.pem以获得开发阶段所需的开发.pem应用程序的开发阶段
Comman d:cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem (If 3rd step is performed)
命令:cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem (if not)
步骤5:检查证书的有效性,并连接到APNS
命令:openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem (If 3rd step is not performed)
命令:openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem (If performed)
P roduction阶段:
第1步:从证书创建证书。质子交换膜的.p12
命令:openssl pkcs12 -clcerts -nokeys -out apns-pro-cert.pem -in apns-pro-cert.p12
步骤2:创建一个从主要的.p12
命令键。质子交换膜:openssl pkcs12 -nocerts -out apns-pro-key.pem -in apns-pro-key.p12
步骤3:可选的(如果你想删除第二步问口令)
命令:openssl rsa -in apns-pro-key.pem -out apns-pro-key-noenc.pem
第4步:现在我们要合并的关键。质子交换膜和证书即可生产。质子交换膜所需的.pem对于应用的生产阶段
命令推送通知:cat apns-pro-cert.pem apns-pro-key-noenc.pem > apns-pro.pem (If 3rd step is performed)
命令:cat apns-pro-cert.pem apns-pro-key.pem > apns-pro.pem (if not)
第5步:检查证书的有效性,并连接到APNS
命令:openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key.pem (If 3rd step is not performed)
命令:openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key-noenc.pem
(如果执行)
谢谢,这是唯一一个为我工作的人。 – 2015-03-04 00:06:48
将它保存在我的宝库中! :P有史以来最伟大的回答! – Blackening 2015-07-08 08:37:47
你是这位作品的神,谢谢。投票。这应该是答案,因为它深入探讨如何一步步创建它 – MNM 2016-05-25 02:20:18
你可以在这里看看。我具有图像描述的详细过程,从创建证书到应用程序密钥到配置文件,最终到达pem。 http://docs.moengage.com/docs/apns-certificate-pem-file
我从来不记得创建.pem
文件所需的openssl
命令,所以我做了这个bash脚本来简化这一过程:
#!/bin/bash
if [ $# -eq 2 ]
then
echo "Signing $1..."
if ! openssl pkcs12 -in $1 -out $2 -nodes -clcerts; then
echo "Error signing certificate."
else
echo "Certificate created successfully: $2"
fi
else
if [ $# -gt 2 ]
then
echo "Too many arguments"
echo "Syntax: $0 <input.p12> <output.pem>"
else
echo "Missing arguments"
echo "Syntax: $0 <input.p12> <output.pem>"
fi
fi
的名字,例如,signpem.sh
并将其保存在您的用户文件夹(/Users/<username>
?)。创建文件后,做一个chmod +x signpem.sh
使其可执行文件,然后你可以运行:
~/signpem myCertificate.p12 myCertificate.pem
而且myCertificate.pem
将被创建。
有创造.PEM文件,如果你已经APNS P12文件在你的钥匙链访问的最简单的方法。
打开终端并输入以下命令:
对于商发展 OpenSSL的PKCS12 -in APNS-DIV-cert.p12 -out APNS-DIV-cert.pem -nodes -clcerts
另外,制造 OpenSSL的PKCS12 -in APNS - 距离 - cert.p12退房手续APNS-DIST-cert.pem -nodes -clcerts
重命名这个名字您的P12文件:APNS-DIV-cert.p12否则代替这需要输入y我们的文件名谢谢!!
- 1. APNS证书.pem
- 2. Django:SSLError:[SSL]与APNS的PEM库
- 3. 创建.pem文件导致“找不到文件或文件夹”。
- 4. 如何为RSA密钥创建PEM文件
- 5. 如何为节点js项目创建.pem和.cert文件
- 6. 为谷歌创建的.pem文件管理域
- 7. iphone如何为windows服务器创建一个.pem文件
- 8. 从.cer和.pem文件创建一个pfx文件
- 9. Paypal Java创建p12文件 - 要包含哪些pem文件?
- 10. 帮助在APNs创建
- 11. 如何创建包含RSA私钥/公钥的PEM文件
- 12. 如何创建一个pem文件+ google-authenticator访问Amazon EC2?
- 13. iPhone:如何从公钥文件(PEM)创建SecKeyRef
- 14. 在LINUX下使用PHP推送通知创建.pem文件w
- 15. 如何使用aes键创建.pem文件
- 16. 创建CA证书(.PEM)文件连接到数据库箱
- 17. 在Objective-C中以编程方式创建.pem文件?
- 18. 如何从Windows创建一个PEM文件
- 19. 我正在为推送通知创建PEM文件,但出现错误?
- 20. 将.pem文件转换为.jks
- 21. 如何将pem转换为pfx文件?
- 22. 将APNs证书导出为p12文件
- 23. PHP中可创建PEM密钥对
- 24. 创建PEM,PFX,...从私有模,
- 25. 如何导入.pem文件?
- 26. PHP RSA gePublicKey从.PEM文件
- 27. PEM文件权限在Windows
- 28. CouchDB SSL CRT到PEM文件
- 29. SignAPK - PEM文件和PK8文件
- 30. 创建文件为apache:apache
我可以使用.p12代替apns而不是.pem吗? – 2016-03-31 13:19:37
.pem的FYI定义:https://serverfault.com/a/21158/193377 PEM本身不是证书,它只是一种编码数据的方式。 ....粘贴到电子邮件正文中是安全的,因为它具有锚线并且是7位清洁的。 – AnneTheAgile 2017-09-13 15:13:34
https://iosdevcenters.blogspot.com/2017/09/how-to-create-pem-file-for-apns-ios.html – 2017-11-21 02:51:39