Реализация MTL в Android с использованием сертификата от ключей:Android

Форум для тех, кто программирует под Android
Anonymous
Реализация MTL в Android с использованием сертификата от ключей:

Сообщение Anonymous »

Я пытаюсь внедрить MTL в моем приложении Android, используя сертификат, хранящийся в ключевой матче. Вот поток, который я следую: < /p>

Я отображаю сборщик сертификата пользователю, чтобы выбрать желаемый сертификат. При попытке установить соединение я получаю следующее исключение: < /p>

, вызванное: java.security.cert.certpathvalidatorexception: доверие
для сертификации не найден. из файла, хранящегося на устройстве, и в этом случае соединение работает правильно.actual fun clientWithMtls(block: HttpClientConfig.() -> Unit) = HttpClient(OkHttp) {
val keyStore = KeyStore.getInstance(KeyStore.getDefaultType())
keyStore.load(null, null)

CertificateChain.certificateChain?.let{ x509Certificates ->
for ((index, cert) in x509Certificates.withIndex()) {
keyStore.setCertificateEntry("${CertificateChain.alias}-$index", cert)
}
}

val trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
trustManagerFactory.init(keyStore)

val sslContext = SSLContext.getInstance("TLS").apply {
init(null, trustManagerFactory.trustManagers,null)
}

engine {
preconfigured = OkHttpClient.Builder()
.sslSocketFactory(sslContext.socketFactory, trustManagerFactory.trustManagers.first() as X509TrustManager)
.build()
}
}
< /code>

Я проверил его, добавив KeyManager в SSLContext Инициализацию: < /p>
// Initialize KeyManagerFactory with the keystore
val keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm())
keyManagerFactory.init(
keyStore,
null
) // Assuming keys do not require additional passwords

val sslContext = SSLContext.getInstance("TLS").apply {
init(keyManagerFactory.keyManagers, trustManagerFactory.trustManagers, SecureRandom())
}
< /code>

Я обращаюсь, чтобы увидеть, столкнулся ли кто -нибудь аналогичную проблему или у него есть идеи о том, как его разрешить. < /p>
Любые предложения будут высоко оценены. Заранее спасибо!


Подробнее здесь: https://stackoverflow.com/questions/795 ... chor-for-c

Вернуться в «Android»