對于APNS證書激才,要分別制作開發(fā)證書和生產證書瘸恼,不同環(huán)境下使用不同的證書,但是對于VoIP證書只有一個压固,不過在服務端連接通知服務器的時候還是需要區(qū)分環(huán)境的帐我。
2. 推送證書的制作
-
準備CSR文件
首先我們要有生成一個Certificate Signing Request(也就是CSR)的請求文件拦键。
在應用程序里的使用工具中找到鑰匙串訪問。
填上你的郵箱和常用名 或者是公司關聯賬號萄金,常用名要記一下氧敢,一會
會用到孙乖。
然后選擇保存到磁盤的圆,繼續(xù)
這時桌面上會有一個CertificateSigningRequest.certSigningRequest的請求文件,也就是我們說的CSR文件季俩。在我們生成CSR文件的同時酌住,會在鑰匙串訪問中生成一對秘鑰,名稱為剛才我們填寫的常用名消痛。當然秩伞,在實際開發(fā)中纱新,我們需要把這些證書文件放在自己分類的文件夾中穆趴。 -
下載開發(fā)證書和發(fā)布證書
到蘋果開發(fā)者中心 登錄后,在右側的ios Developer Program里點擊iOS Provisioning Portal未妹。
進入下一級頁面后在左側選擇Certificates
-
注冊項目的Bundle ID
-
創(chuàng)建測試證書和生產證書
導出
.p12
證書
- 點擊下載下來去,下載下來后會是一個. cer文件
- 雙擊文件,(因為你需要生成一個.p12文件才能用)
-
導出證書
同樣的方法可以得到開發(fā)推送證書看尼,到這里APNS推送證書就都下載好了。如果是用的信鴿的推送平臺躏结,則信鴿中會知道你如果去配置信鴿需要的推送證書的鏈接狰域,信鴿平臺中需要的是
.pem
證書兆览,極光推送中需要上傳.p12
證書,可能就是這里的問題導致項目在集成信鴿推送之后再單獨集成VoIP會導致VoIP消息發(fā)送失敗的問題子巾。
2.2 VoIP推送證書
VoIP證書的制作過程和APNS推送證書的制作過程雷同线梗,只不過不需要區(qū)分開發(fā)環(huán)境和生產環(huán)境怠益,一個bundle ID只需要創(chuàng)建一個VoIP證書蜻牢。
【tips】如果是先創(chuàng)建的開發(fā)證書和發(fā)布證書,然后再去創(chuàng)建推送證書髓削,建議在將推送證書創(chuàng)建成功之后就更新一次開發(fā)證書和發(fā)布證書立膛,避免推送收不到然后又查不出問題。
2.3 配置證書
到這里的時候就應該是6個證書了好啰,三個從開發(fā)者中心下載的證書儿奶,還有三個.p12
證書
-
制作.pem格式證書
創(chuàng)建VoIP證書為例- 目前我們有兩個文件闯捎,
voip_services.cer
SSL證書和voip_push.p12
私鑰 - 把.cer的SSL證書轉換為.pem文件瓤鼻,打開終端命令行cd到證書文件夾、執(zhí)行以下命令
openssl x509 -in voip_services.cer -inform der -out voip_cert.pem
- 把.p12私鑰轉換成.pem文件清焕,執(zhí)行以下命令(這里需要輸入之前導出設置的密碼)
openssl pkcs12 -nocerts -out voip_key.pem -in voip_push.p12
- 再把生成的兩個.pem整合到一個.pem文件中
cat voip_cert.pem voip_key.pem > voip_ck.pem
最終生成的voip_ck.pem
文件一般就是服務器用來推送的秸妥。
- 目前我們有兩個文件闯捎,
同樣的步驟可以創(chuàng)建另外兩個證書沃粗,創(chuàng)建完成之后的文件夾中應該有:
我們需要的所有推送文件都在這里面了
比如信鴿推送需要上傳 push_key_dev.pem
和 push_key_dis.pem
證書
極光中需要上傳 push_cert_dev.p12
和 push_cert_dis.p12
證書
如果是網易云中有需要使用VoIP功能的最盅,則還需要上傳我們做好的 voip_ck.pem
證書
集成VoIP推送看似是簡單檩禾,但其中會遇到各種坑疤祭,如果每次出現問題都要服務器配合測試的話勺馆,很難找到問題的根源,而且還浪費時間灌灾,所以最好是自己搭建一個簡單的測試環(huán)境先測試通悲柱,然后再與服務器對接。后面會提供服務端源碼和一個很牛逼的推送測試工具pusher
嘿般。這個時候需要用到的推送證書就是
-
push_key_dev.pem
測試環(huán)境APNS推送證書 -
push_key_dis.pem
生產環(huán)境APNS推送證書 -
voip_ck.pem
VoIP推送證書