iOS 遠(yuǎn)程推送證書詳細(xì)制作流程

遠(yuǎn)程推送

遠(yuǎn)程推送服務(wù)APNs (Apple Push Notification Services)

通俗講就是從遠(yuǎn)程服務(wù)器推送消息給客戶端的通知,當(dāng)然這需要聯(lián)網(wǎng),只要你的蘋果設(shè)備聯(lián)網(wǎng)狀態(tài),你的設(shè)備就與蘋果的APNS服務(wù)器保持一個長連接狀態(tài)。友盟、極光、信鴿等遠(yuǎn)程推送都是必須通過蘋果的APNs服務(wù)器來實(shí)現(xiàn)的。推送原理看這邊 ? 通知和消息機(jī)制

部分摘抄:

蘋果官方推送通知過程示意圖

推送通知的過程可以分為以下幾步:

a.應(yīng)用服務(wù)提供商從服務(wù)器端把要發(fā)送的消息和設(shè)備令牌(device token)發(fā)送給蘋果的消息推送服務(wù)器APNs。

b.APNs根據(jù)設(shè)備令牌在已注冊的設(shè)備(iPhone、iPad、iTouch、mac等)查找對應(yīng)的設(shè)備,將消息發(fā)送給相應(yīng)的設(shè)備。

c.客戶端設(shè)備接將接收到的消息傳遞給相應(yīng)的應(yīng)用程序,應(yīng)用程序根據(jù)用戶設(shè)置彈出通知消息。



以下證書制作主要步驟:

1.App ID 的創(chuàng)建

2.Certificates 的創(chuàng)建和配置

3.鑰匙串中證書導(dǎo)出.p12格式文件

App ID 的創(chuàng)建

登錄Apple Member Center

Certificates,Identifiers&Profiles 進(jìn)入管理頁面(已有 App IDs 的找到自己的直接展開編輯,否則按步驟操作)

Identifiers 中選中 App ID 接著右上?號

接著來到了這里, 這下邊連著3張圖在同個界面

跟隨提示操作


跟隨提示操作


勾選上 Push Notifictaions


Continue到這里,可以看到之前我勾選了 Push Notification,這里下邊有個小菊花警告,有警告就對了,繼續(xù)往下

?Register


一波點(diǎn)擊后跳轉(zhuǎn)到了這里,在這里我們 App ?IDS中找我們先前創(chuàng)建的 App ID(HeyGirl),點(diǎn)擊展開

來到這個頁面,現(xiàn)在有兩盞菊花燈,Edit 進(jìn)去

?Edit

往下拖可以看到,這里講一下什么是開發(fā)環(huán)境和生產(chǎn)環(huán)境:

你用Xcode編譯安裝的就是開發(fā)環(huán)境,用二維碼或者App Store下載的就是生產(chǎn)環(huán)境.

先來處理一個

點(diǎn)擊第一個 Create Certificate 后來到這里,它提示我們要上傳東西

選啥文件?不知道咱就先晾著

Certificates 的創(chuàng)建和配置

來到鑰匙串->鑰匙串訪問->

噥,看圖操作


文明觀圖

到這里,點(diǎn)繼續(xù)就可以創(chuàng)建和配置好Certificates了,選個路徑放好,我隨便丟在了桌面


就長這個樣兒


還記得晾著的頁面嗎?回到Apple Member Center,點(diǎn) Choose File,把剛才從鑰匙中生成存在本地的CertificateSigningRequest文件上傳上去(文件就長上邊那個樣),然后 Download 下來.


這個是開發(fā)環(huán)境的


然后咱們還是回到App IDs 這里再找到我的 HeyGirl點(diǎn)進(jìn)來你會發(fā)現(xiàn),剛剛的兩朵小菊花一朵變綠了,就是說咱還有一個生產(chǎn)環(huán)境的沒配置完, Edit重復(fù)上述步驟:選取文件, Download.

剩一朵菊花


配置生產(chǎn)環(huán)境

不出意外你會在下載的文件夾發(fā)現(xiàn)多了這兩個文件:aps_development.cer和aps.cer,這兩個就是下載創(chuàng)建好的Production SSL Certificate,Development SSL Certificate證書,把它們雙擊添加到鑰匙串.

鑰匙串中證書導(dǎo)出為P12文件

選長的選長的選長的
.p12

大功告成,接著用哪個第三方推送服務(wù)平臺就把.p12往哪搬。

---------我是分割線------------

拓展:以下針對. p12類型轉(zhuǎn). pem 的操作

導(dǎo)出開發(fā)證書為例

導(dǎo)出 cer.p12文件


導(dǎo)出展開的這個密鑰的key. p12文件


此時桌面

我們需要通過終端命令將這些文件轉(zhuǎn)換為. pem 類型.

因?yàn)槲野褍蓚€文件都放在桌面

1、$ cd desktop? 回車(坑點(diǎn):不寫轉(zhuǎn)換后在桌面找不到多出來的 cer.pem 和 key.pem 文件)?

2、使用openssl 將cer.p12及key.p12轉(zhuǎn)成cer.pem和key.pem

命令如下:

$ openssl pkcs12 -clcerts -nokeys -out cer.pem -in cer.p12

$ openssl pkcs12 -nocerts -out key.pem -in key.p12

注:如果最終的pem在服務(wù)端系統(tǒng)使用時不需要密碼,則可以執(zhí)行命令擦除密碼:

$ openssl rsa -in key.pem -out key_nopwd.pem

最后會在桌面生成兩個pem文件,如:“cer.pem”、“key.pem或者key_nopwd.pem(執(zhí)行擦除密碼命令生成后者)”,那么在3、4步驟也要注意統(tǒng)一為 key_nopwd.pem 執(zhí)行操作

3、測試生成的cer.pem及key.pem是否可用

$ openssl s_client -connect gateway.push.apple.com:2195? -cert cer.pem -key key.pem

注:gateway.push.apple.com:2195用于appStore app;

gateway.sandbox.push.apple.com:2195用于沙盒app;

以上命令執(zhí)行后會打印一大羅信息,最后處于可輸入狀態(tài),打幾個字符回車后自動斷開連接即為正常。

4、我們需要將鍵和許可文件合成一個.pem文件,如 ck.pem,此文件在連接到APNS時需要使用,執(zhí)行命令

$ cat cer.pem key.pem > ck.pem

搞定
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容