APNS推送证书生成与验证
要進(jìn)行推送服務(wù)的第一件事就是獲取推送證書。它用來對你通過SSL與APNS通訊進(jìn)行識別。
一、在Mac上生成 Apple推送通知SSL證書:
1.1.登錄到 iPhone Developer Connection Portal 并點擊 App IDs
1.2.創(chuàng)建一個不使用通配符的 App ID 。通配符 ID 不能用于推送通知服務(wù)。例如,我們的iPhone程序ID像這樣: AB123346CD.com.serverdensity.iphone
1.3.點擊App ID旁的“Configure”,然后按下按鈕生產(chǎn) 推送通知許可證。根據(jù)“向?qū)А敝笇?dǎo)的步驟生成一個簽名并上傳,最后下載生成的許可證。此步驟在 Apple文檔中 也有談到。
1.4.通過雙擊.cer文件將你的 aps_developer_identity.cer 引入Keychain中。
1.5.在Mac上啟動 Keychain助手,然后在login keychain中選擇 Certificates分類。你將看到一個可擴(kuò)展選項“Apple Development Push Services”
1.6.擴(kuò)展此選項然后右擊“Apple Development Push Services” > Export “Apple Development Push Services ID123”。保存為 apns-dev-cert.p12 文件。
1.7.擴(kuò)展“Apple Development Push Services” 對“Private Key”做同樣操作,保存為 apns-dev-key.p12 文件。
1.8.需要通過終端命令將這些文件轉(zhuǎn)換為PEM格式:
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
1.9.如果你想要移除密碼,要么在導(dǎo)出/轉(zhuǎn)換時不要設(shè)定或者執(zhí)行:
openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem
1.10.a 最后,你需要將鍵和許可文件合成為apns-dev.pem文件,此文件在連接到APNS時需要使用:
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem
1.10.b java需要使用:
openssl pkcs12 -export -in apns-dev.pem -inkey apns-dev-key.pem -certfile CertificateSigningRequest.certSigningRequest -name“aps_developer_identity” -out aps_developer_identity.p12
二、使用APNS 搭建蘋果推送服務(wù)器錯誤:unable to connect to ssl://gateway.sandbox.push.apple.com:2195 錯誤
2.1:檢查你的服務(wù)器的端口 2195是否已經(jīng)開啟,是否被關(guān)閉了或是防火墻阻止了!這點很重要;如果你不確定,又出現(xiàn)了錯誤,請先向你的服務(wù)器商詢問一下,并開啟;
2.2:確認(rèn)你的證書沒有問題:
在mac下執(zhí)行以下命令:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem -debug -showcerts -CAfile “apns-dev.pem”
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem -debug -showcerts -CAfile “apns-dev.pem”
在上面進(jìn)程執(zhí)行完之后;可以隨便輸入一些字符串,如果關(guān)閉了,這時是正常的!如果沒有關(guān)閉,會有錯誤信息打印;說明證書有問題;
證書生成:https://blog.serverdensity.com/how-to-build-an-apple-push-notification-provider-server-tutorial/
2.3:檢查你的 推送程序是否有問題; 在這里推薦幾個我測試成功的 php推送程序;
APNS-Pusher
ApnsPHP
easyapns
2.4:檢查你的服務(wù)器與推送程序的環(huán)境配置是否相匹配;比如我的服務(wù)器使用Apache ,程序用php 那么 就要確認(rèn)服務(wù)器 支持php 的 socket連接 openSSL模塊;
三、證書過期處理:(不需要升級客戶端)
證書過期處理:push證書過期,不需要升級客戶端。 具體步驟要點:
3.1. 刪除老的push 的certificate。(一定要把老的證書刪掉)
3.2. 在Identifiers -> App Ids 下創(chuàng)建新的push certificate。
測試創(chuàng)建:Development SSL Certificate
正式創(chuàng)建:Production SSL Certificate
3.3. 創(chuàng)建完成后,下載certificate,雙擊安裝。
3.4. 把證書導(dǎo)出,上傳到自己的apns服務(wù)器上。
總結(jié)
以上是生活随笔為你收集整理的APNS推送证书生成与验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云Flink sql 基本使用手册
- 下一篇: matlab数据拟合语句,Matlab数