OkHttp 添加 Https 單向認證證書(證書類型 PKCS12)

移動端需要在 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 是認證證書的密碼。

配置完成之後,就可以調試需要校驗證書的接口請求了

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