IOS消息推送之服務器*.pem證書獲取

轉自blog.csdn.net/showhilllee/article/details/8631734

六 處理證書

下面我們打開終端(位置:應用程序à實用工具à終端)。

cd到桌面,我們那三個文件所在的位置

1、把.cer的SSL證書轉換爲.pem文件,執行命令:

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

在桌面上會生成一個PushChatCert.pem文件


 

2、把私鑰Push.p12文件轉化爲.pem文件:

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


這裏需要我們輸入密碼,這個密碼也就是我們導出p12文件時的密碼,也就是我們上面設置的abcabc。然後,需要我們對生成的pem文件設置一個密語,這裏我們推薦還是用上面這個abcabc,防止混亂(當然你也可以設置成別的更有意義的密語),這裏的密語是要告訴我們服務器的。這樣,桌面上又會生成一個PushChatKey.pem文件


 

3、對生成的這兩個pem文件再生成一個pem文件,來把證書和私鑰整合到一個文件裏:

cat PushChatCert.pem PushChatKey.pem > ck.pem
生成ck.pem文件


 
這樣,我們的文件就製作完了。下面進入測試階段

爲了測試證書是否工作,執行下面的命令:

telnet gateway.sandbox.push.apple.com 2195
它將嘗試發送一個規則的,不加密的連接到APNS服務。如果你看到上面的反饋,那說明你的MAC能夠到達APNS。按下Ctrl+C關閉連接。如果得到一個錯誤信息,那麼你需要確保你的防火牆允許2195端口。一般這裏都不會出現什麼問題。

下面我們要使用我們生成的SSL證書和私鑰來設置一個安全的鏈接去鏈接蘋果服務器:

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

執行完這一句命令後需要我們輸入密語

Enter pass phrase for PushChatKey.pem:

我們輸入abcabc按回車

你會看到一個完整的輸出,讓你明白OpenSSL在後臺做什麼。如果鏈接是成功的,你可以隨便輸入一個字符,按下回車,服務器就會斷開鏈接,如果建立連接時有問題,OpenSSL會給你返回一個錯誤信息。


 當你在最後的時候你看到這樣說明你已經成功了:

CONNECTED(00000003)

depth=1 /C=US/O=Entrust, Inc./OU=www.entrust.net/rpa isincorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust CertificationAuthority - L1C

verify error:num=20:unable to get local issuercertificate

verify return:0

---

Certificate chain

 0s:/C=US/ST=California/L=Cupertino/O=Apple Inc./OU=iTMSEngineering/CN=gateway.sandbox.push.apple.com

  i:/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated byreference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C

 1s:/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated byreference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C

   i:/O=Entrust.net/OU=www.entrust.net/CPS_2048incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.netCertification Authority (2048)

---

Server certificate

-----BEGIN CERTIFICATE-----

MIIFGzCCBAOgAwIBAgIETBz90jANBgkqhkiG9w0BAQUFADCBsTELMAkGA1UEBhMC

……省略……

fMGbLqkGn8YogdPqe5T1

-----END CERTIFICATE-----

subject=/C=US/ST=California/L=Cupertino/O=AppleInc./OU=iTMS Engineering/CN=gateway.sandbox.push.apple.com

issuer=/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa isincorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust CertificationAuthority - L1C

---

No client certificate CA names sent

---

SSL handshake has read 2731 bytes and written 2165 bytes

---

New, TLSv1/SSLv3, Cipher is AES256-SHA

Server public key is 2048 bit

Secure Renegotiation IS supported

Compression: NONE

Expansion: NONE

SSL-Session:

    Protocol  : TLSv1

    Cipher    : AES256-SHA

    Session-ID:

    Session-ID-ctx:

    Master-Key:C7A47EED5E1F5……省略……369D4

    Key-Arg   : None

    Start Time:1361862882

    Timeout   : 300 (sec)

    Verify return code: 0 (ok)

---

在這裏提醒一下,也許你會看到像我這樣的提示:verify error:num=20:unable to get local issuercertificate

verify return:0


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章