Android "Trust Anchor для сертификации не найдена" с одним сертификатом, а не другимAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android "Trust Anchor для сертификации не найдена" с одним сертификатом, а не другим

Сообщение Anonymous »

У меня есть приложение для Android, которое потребляет API сервера, который недавно обновил сертификат. Приложение не имеет пользовательской конфигурации сети, нет закрепления сертификата или других пользовательских правил сертификата. Он использует модернизацию, инициализированное так: < /p>

Код: Выделить всё

    object ServiceBuilder {
fun  buildService(service: Class, interceptor: Interceptor): T {

val moshi = Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.build()

val client: OkHttpClient = OkHttpClient.Builder()
.followRedirects(false)
.addInterceptor(interceptor)
.build()

val retrofit: Retrofit = Retrofit.Builder()
.addConverterFactory(MoshiConverterFactory.create(moshi))
.baseUrl(DemoServerUrl.LOCALHOST_URL.url)
.client(client)
.build()

return retrofit.create(service)
}
}
Старый сертификат: приложение правильно потребляет API

server не в целом. Один: < /p>
$ openssl s_client -connect my.domain.something:443
Connecting to 139.7.29.65
CONNECTED(00000003)
depth=0 C=GB, L=Newbury, O=Some Company Services Limited, CN=my.domain.something
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 C=GB, L=Newbury, O=Some Company Services Limited, CN=my.domain.something
verify error:num=21:unable to verify the first certificate
verify return:1
depth=0 C=GB, L=Newbury, O=Some Company Services Limited, CN=my.domain.something
verify return:1
---
Certificate chain
0 s:C=GB, L=Newbury, O=Some Company Services Limited, CN=my.domain.something
i:C=US, O=DigiCert Inc, CN=DigiCert SHA2 Secure Server CA
a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
v:NotBefore: Dec 18 00:00:00 2024 GMT; NotAfter: Dec 17 23:59:59 2025 GMT
---
< /code>
Новый сертификат: приложение дает «доверительный якорь для пути сертификации не найден». Ошибка, пытаясь поглотить API

снова сервер неправданный не отправляет полную цепочку сертификата, но только первый. Способен потреблять API, и я получаю «доверительный якорь для сертификации, не найденного». Ошибка.
Обратите внимание, что я очистил все пользовательские сертификаты, установленные в устройствах Android, на которых я протестировал, чтобы убедиться, что промежуточный сертификат не известен для устройства. В обоих случаях корневой сертификат известен под OS:
Digicert Global Root Ca
в первом случае, Digicert Global Root G2 во втором случае? Информация.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -certifica
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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