Вы можете настроить свои OkHttpClients sslSocketFactory
например (настройка клиента Retrofit
)
val retrofit Retrofit
.Builder()
.client(client)
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build()
например (настройка sslSocketFactory OkHttpsClient
)
val client =OkHttpClient.Builder()
.sslSocketFactory(sslContextWithSS.getSocketFactory())
.build()
например (SSLSocketFactory
с пользовательским сертификатом)
val keyStore = readKeyStore() //your method to obtain KeyStore
val sslContext = SSLContext.getInstance("SSL")
val trustManagerFactory = TrustManagerFactory.getInstance(getDefaultAlgorithm())
trustManagerFactory.init(keyStore)
val keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm())
keyManagerFactory.init(keyStore, "keystore_pass".toCharArray())
sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), SecureRandom())
client.setSslSocketFactory(sslContext.getSocketFactory())
Получение KeyStore
с вашим CustomCertificate
fun readKeyStore()= KeyStore.getInstance(KeyStore.getDefaultType()).also{
try (val inputStream = context.getResources().openRawResource(R.raw.custom_certificate)) {
it.load(inputStream, getPassword());
}
}