Сервисный работник с самозаверяющим сертификатом на Android WebView - PullRequest
0 голосов
/ 07 января 2019

Можно ли использовать работника сервиса с самозаверяющими сертификатами?

Я знаю, что на рабочем столе возможно использование флага --unsafely-treat-insecure-origin-as-secure= при запуске (https://stackoverflow.com/a/43484456).

Но как мне добиться этого на Android WebView?

Я уже создал пользовательский WebViewClient, чтобы пропустить все ошибки SSL:

@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
    handler.proceed();
}

но это, похоже, здесь не поможет.

1 Ответ

0 голосов
/ 21 февраля 2019

Это заставит приложение всегда принимать недоверенные сертификаты.

public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) {
        if ( SslError.SSL_UNTRUSTED == error.getPrimaryError() ){
            handler.proceed();
        } else {
            super.onReceivedSslError(view, handler, error);
        }
    }

Лучшее решение - использовать сертификат

String sslCertificate = error.getCertificate().toString();
    String mySslCertificate = new SslCertificate(cert).toString(); //cert is stored inside /raw 
    if ( sslCertificate.equals(mySslCertificate) )
        handler.proceed();
...