Android HTTPS如何10分鐘實現自簽名SSL證書
阿新 • • 發佈:2019-01-08
前言
去年公司內一個應用加了支付寶支付功能,為了保證安全,支付請求連結寫成了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 原始碼下載地址如下: