Я получаю предупреждение на панели инструментов Google, в котором говорится, что мне нужно исправить способ, которым я принимаю самозаверяющие сертификаты. Проблема заключается в том, что приложение, над которым я работаю, должно иметь возможность подключаться к нескольким самозаверяющим сертификатам, а URL-адреса серверов вводятся пользователем вручную.
Код, который у меня сейчас есть, это * 1003. *
try {
HttpsURLConnection.setDefaultHostnameVerifier { hostname, session -> true }
val ssl_context = SSLContext.getInstance("TLS")
ssl_context.init(null, arrayOf<X509TrustManager>(object : X509TrustManager {
@Throws(CertificateException::class)
override fun checkClientTrusted(chain: Array<X509Certificate>, authType: String) {
}
@Throws(CertificateException::class)
override fun checkServerTrusted(chain: Array<X509Certificate>, authType: String) {
}
override fun getAcceptedIssuers(): Array<X509Certificate?> {
return arrayOfNulls(0)
}
}), SecureRandom())
HttpsURLConnection.setDefaultSSLSocketFactory(
ssl_context.socketFactory
)
} catch (e: Exception) {
//e.printStackTrace();
}
Есть ли более безопасный способ принять любой тип самоподписанного сертификата?