1. 程式人生 > >Android HTTPS如何10分鐘實現自簽名SSL證書

Android HTTPS如何10分鐘實現自簽名SSL證書

前言

去年公司內一個應用加了支付寶支付功能,為了保證安全,支付請求連結寫成了https。

由於公司伺服器使用的是的自簽名證書,而在Android系統中自己簽署的不能通過驗證的,所以會丟擲錯誤。

於是我網上查找了很多資料,也嘗試過幾種方法,過程都很繁瑣,搞了一通宵都不行。

幸虧通過一個朋友找到了以下這個簡便的開源庫

然後用裡面的SSLUtil,10分鐘就解決了。

實現自簽名SSL證書

1.訪問以上開源庫網址下載SSLUtil

2.把伺服器生成的自簽名證書cer檔案放到在assets目錄下,這裡以demo.cer做示範

3.初始化SSLSocketFactory

   在http請求類的constructor中新增以下程式碼,這裡以HttpRequest做示範

 socketFactory = SSLUtil.getSSLSocketFactory(context.getAssets().open("demo.cer"));

4.新增信任https證書

   在new OKHttpClient後新增以下程式碼

 if (url.startsWith("https://") && socketFactory != null) {
    client.setSslSocketFactory(socketFactory);
 }

 

以上這幾步就是全部步驟了,如果你還是覺得麻煩,推薦使用Android-ZBLibray這個Android快速開發框架,裡面自簽名已全部封裝好,只需替換下demo.cer檔案即可。

Android快速開發框架-ZBLibrary 原始碼下載地址如下: