Эмулятор Android «Chain Validation Failed» соединяет машину разработчиков с самоподписанным сертификатом

3

У меня есть проект студии Android, который вызывает веб-службу api. Когда код службы находится в dev, qa, prod и т.д., Нет никаких проблем с сертификатами, но при попытке попасть в панель разработчиков api для тестирования новой функции/исправления ошибок/и т.д. Я получаю:

Нет ответа из-за ошибки:

javax.net.ssl.SSLHandshakeException: ошибка проверки цепочки

на com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:361)

У меня был сам подписанный сертификат, экспортированный с машины разработчиков служб БЕЗ закодированного секретного ключа DER. Я упал на эмулятор, и он "установлен", но это не сработало.

Я взял тот же сертификат выше и скопировал его на эмулированную SD-карту. Затем устанавливается из настроек безопасности в эмуляторе. Тот же результат. Ошибка проверки цепочки.

Теперь мои знания в области безопасности/сертификата очень просты. Я думаю, что ошибка действительно описывает проблему. В самоподписанном сертификате нет цепи... но я мог ошибаться.

Независимо от того, как мне обойти это?

Я хочу иметь возможность запускать свой код Android и попадать в поле разработчиков для тестирования/отладки и т.д.

Я прочитал сообщение вроде этого только для того, чтобы иметь корпоративную среду, в которой я блокирую сайты для открытых SSL и т.д.

https://android.stackexchange.com/questions/61540/self-signed-certificate-install-claims-success-but-android-acts-as-if-cert-isn

Я получаю доступ к сервису через WebView.

Приветствуется любая помощь, указатели, идеи.

ТИА

  • 0
    Установленные пользователем сертификаты не применяются по умолчанию на Android 7.0+. Как конкретно вы получаете доступ к этому серверу? OkHttp3? HttpUrlConnection ? WebView ? Что-то другое?
  • 0
    Хороший вопрос. Я буду обновлять ОП с информацией.
Показать ещё 1 комментарий
Теги:
ssl-certificate

2 ответа

3

Я получал

javax.net.ssl.SSLHandshakeException: Chain validation failed

и

java.security.cert.CertPathValidatorException: Response is unreliable: its validity interval is out-of-date

решение, которое работало для меня, заключалось в том, чтобы заставить холодную загрузку эмулятора через Диспетчер виртуальных устройств → Выпадающее меню Actions → Cold Boot Now

  • 1
    Просто перезапустить эмулятор не получилось. Я должен был сделать трюк "Холодная загрузка сейчас". Спасибо!
1

Просто перезагрузка эмулятора решила эту ошибку. Длительно нажмите кнопку выключения питания в меню эмулятора и выберите "Перезагрузка".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню