Если вы хотите использовать APK вне магазина Google Play, например, частное решение, подобное следующему, вероятно, будет работать:
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
Если вы хотите добавить дополнительный дополнительный уровень безопасности, вы можете попробовать использовать закрепление сертификата . ИМХО это не обязательно для частного или внутреннего использования.
Если вы планируете опубликовать приложение в Google Play Store, вам следует избегать @Override onReceivedSslError (...) {...}. Особенно с использованием handler.proceed (). Google найдет этот фрагмент кода и обязательно отклонит ваше приложение, так как решение с handler.proceed () подавит все виды встроенных механизмов безопасности .
И то, что браузеры не жалуются на ваше https-соединение, не означает, что самому SSL-сертификату вообще доверяют!
В моем случае была нарушена цепочка сертификатов SSL . Вы можете быстро проверить такие проблемы с помощью SSL Checker или другого промежуточного звена с SSLLabs . Но, пожалуйста, не спрашивайте меня, как это может случиться. Я понятия не имею.
В любом случае, после переустановки SSL-сертификата все ошибки, касающиеся « ненадежного SSL-сертификата в WebView вообще », исчезли окончательно. Я также удалил @Override для onReceivedSslError (...) и избавился от handler.proceed () , и é voila, мое приложение не было отклонено Google Play Store (снова).