Samsung SM A550W HTTPS ExtCertPathValidatorException с неверной датой

Мое приложение работает на всех устройствах и симуляторах, кроме Samsung SM-A500W. Просто не удалось обновить базу данных. Доступ к базе данных осуществляется через php-скрипты, хранящиеся в защищенном домене TLD (доступ только через httpS). Ошибка состоит в том, что он считает, что срок действия сертификата пройден.... не соответствует действительности. Смотрите LogCat.

10-25 11:07:18.381 25547-25617/uro2.tradersmicro.com.uro2 D/Uploadi16: Exception jb: com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: Certificate expired at Sat Feb 18 18:59:59 EST 2017 (compared to Thu Oct 25 11:07:18 EDT 2018) javax.net.ssl.SSLHandshakeException: com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: Certificate expired at Sat Feb 18 18:59:59 EST 2017 (compared to Thu Oct 25 11:07:18 EDT 2018)

КСТАТИ. Один из фрагментов моего приложения использует WebView. Безопасный доступ к базе данных в этой части нормальный.

Есть ли способ избежать этой ошибки?

2 ответа

Я нашел способ обойти эту проблему - скопировать сценарии php в незащищенный домен и убедиться, что они обновляются по мере обновления сценариев. Во время выполнения:- при попытке... получить доступ к базе данных, чтобы изменить домен на незащищенный. Пока работает как шарм. Конечно, доступ к базе данных происходит в асинхронной задаче, кажется нормальным снова вызывать метод, рекурсивно из кода catch.

Я бы посоветовал попробовать обновить провайдера безопасности устройства с помощью сервиса Google Play:

https://developer.android.com/training/articles/security-gms-provider

import com.google.android.gms.security.ProviderInstaller;

// ....

try {
  ProviderInstaller.installIfNeeded(getContext());
} catch (GooglePlayServicesRepairableException e) {
  // TODO handle error
} 
Другие вопросы по тегам