Caso você queira usar o APK fora da Google Play Store, por exemplo, privado, uma solução como a seguinte provavelmente funcionará:
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
/*...*/
handler.proceed();
}
Caso queira adicionar uma camada opcional adicional de segurança, você pode tentar fazer uso da fixação de certificado . IMHO isso não é necessário para uso privado ou interno difícil.
Se você planeja publicar o aplicativo na Google Play Store, deve evitar @Override onReceivedSslError (...) {...}. Especialmente usando handler.proceed (). O Google encontrará esse snippet de código e rejeitará seu aplicativo com certeza, pois a solução com handler.proceed () suprimirá todos os tipos de mecanismos de segurança integrados .
E só porque os navegadores não reclamam da sua conexão https, isso não significa que o próprio certificado SSL seja confiável!
No meu caso, a cadeia de certificados SSL foi quebrada. Você pode testar rapidamente esses problemas com SSL Checker ou mais intermediário com SSLLabs . Mas, por favor, não me pergunte como isso pode acontecer. Eu não tenho absolutamente nenhuma ideia.
De qualquer forma, depois de reinstalar o certificado SSL, todos os erros referentes ao " certificado SSL não confiável em WebView qualquer " desapareceram finalmente. Eu também removi @Override para onReceivedSslError (...) e me livrei de handler.proceed () , e pronto, meu aplicativo não foi rejeitado pela Google Play Store (de novo).