天天看點

生成pem證書

生成pem證書的原因:我們的伺服器連結蘋果伺服器也是需要證書的,但是我們直接生成的證書windows系統不識别,是以我們需要生成一個字尾為pem的證書檔案。下面将記錄下來制作步驟,友善後期檢視!

一、從鑰匙串中導出秘鑰

打開鑰匙串通路(路徑:應用程式 ----> 鑰匙串通路),找到相應的證書,點選前面的小箭頭展開,右擊,導出p12檔案,然後輸入相關的密碼即可,如下圖所示:

生成pem證書

那麼我們的準備工作就已經完成。在桌面上一共生成了三個檔案,一個是CSR請求檔案,一個是aps_production.cer的SSL證書檔案,還有一個是剛生成的Push.p12秘鑰檔案。

二、制作pem證書

打開終端(路徑:應用工具------>實用工具------>終端),cd到放上面3個檔案的檔案夾下面,方法:cd 将檔案夾拖到此處。

a).把.cer的SSL證書轉換為.pem檔案,執行指令如下:

openssl x509 -in aps_production.cer -inform der -out PushChatCert.pem

在相應的檔案夾下生成一個pem的檔案:PushChatCert.pem

b).把私鑰Push.p12檔案轉化為.pem檔案,執行指令如下:

openssl pkcs12 -nocerts -out PushChatKey.pem -in Push.p12

這裡需要我們輸入密碼,這個密碼也就是我們導出p12檔案時的密碼,然後,需要我們對生成的pem檔案設定一個密碼,這裡我們推薦和上面用相同的密碼,以免搞混了,這裡的密語是要告訴我們伺服器的。這樣,在相應的檔案夾裡又生成一個pem檔案:PushChatKey.pem

終端顯示如下:

生成pem證書

c).将證書和私鑰合并,即 将上面的2個pem檔案合并成一個,執行指令如下:

cat PushChatCert.pem PushChatKey.pem > ck.pem

在相應的檔案夾下生成一個pem檔案:ck.pem

此時證書已經制作完成!下面我們将測試證書與蘋果伺服器的連結狀況

三、測試證書

執行下面指令:

telnet gateway.sandbox.push.apple.com 2195(apns的測試環境)

telnet gateway.push.apple.com 2195(apns的正式環境)

它将嘗試發送一個規則的,不加密的連接配接到APNS。如果你看到下面的回報,那說明你的MAC能夠到達APNS。按下Ctrl+C關閉連接配接。如果得到一個錯誤資訊,那麼你需要確定你的防火牆允許2195端口,一般這裡都不會出現什麼問題。

終端顯示如下:

生成pem證書

下面我們使用生成的SSL證書和私鑰來設定一個安全的連結去連結蘋果伺服器,執行指令如下:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert cert.pem -key key.pem

執行之後需要輸入密碼,就是上面我們設定的密碼即可。

你會看到一個完整的輸出,讓你明白OpenSSL在背景做什麼。如果連結是成功的,你可以随便輸入一個字元,按下回車,伺服器就會斷開連結,如果建立連接配接時有問題,OpenSSL會給你傳回一個錯誤資訊。

輸出結果如下,則說明是正确連結了:

生成pem證書