Я пытаюсь внедрить 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
Реализация MTL в Android с использованием сертификата от ключей: ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1743428900
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>
Любые предложения будут высоко оценены. Заранее спасибо!
Подробнее здесь: [url]https://stackoverflow.com/questions/79546383/implementing-mtls-in-android-using-certificate-from-keychain-trust-anchor-for-c[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия