如何創建一個.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