移動端需要在 Http 中添加單向或雙向認證證書,防止其他非法請求操作。
添加證書文件
在 res 目錄下添加 raw 目錄,然後導入 apicer.pfx(ps:名字自定義) 證書文件。
配置證書
在 OkHttpClient 初始化時,配置證書類型。
val builder = OkHttpClient.Builder()
//將ca證書導入輸入流
val inputStream = App.mContext.resources.openRawResource(R.raw.apicer)
//keystore添加證書內容和密碼
val keyStore = KeyStore.getInstance("PKCS12")
keyStore.load(inputStream, Const.HTTPS_PASSWORD.toCharArray())
//key管理器工廠
val keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm())
keyManagerFactory.init(keyStore, Const.HTTPS_PASSWORD.toCharArray())
//構建一個ssl上下文,加入ca證書格式,與後臺保持一致
val sslContext = SSLContext.getInstance("TLS")
//參數,添加受信任證書和生成隨機數
sslContext.init(keyManagerFactory.keyManagers, null, SecureRandom())
//獲得scoket工廠
val sslSocketFactory = sslContext.socketFactory
builder.sslSocketFactory(sslSocketFactory)
... //Other Config
- Const.HTTPS_PASSWORD 是認證證書的密碼。