在 Android WebView 上具有自签名证书的服务工作者

Posted

技术标签:

【中文标题】在 Android WebView 上具有自签名证书的服务工作者【英文标题】:Service worker with self signed certificate on Android WebView 【发布时间】:2019-06-02 03:30:14 【问题描述】:

是否可以使用带有自签名证书的 Service Worker?

我知道在桌面上可以在开始时使用标志 --unsafely-treat-insecure-origin-as-secure= (https://***.com/a/43484456)。

但是如何在 android WebView 上实现这一点?

我已经创建了一个自定义 WebViewClient 来跳过所有 SSL 错误:

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

但这在这里似乎没有帮助。

【问题讨论】:

没有解决办法?平 【参考方案1】:

这将导致应用始终接受不受信任的证书。

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

更好的解决方案是使用您的certicate

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

【讨论】:

嗨,我已经信任所有证书,正如您在我的问题中看到的那样。

以上是关于在 Android WebView 上具有自签名证书的服务工作者的主要内容,如果未能解决你的问题,请参考以下文章

android webview在系统签名文件下报错解决

android webview在系统签名文件下报错解决

JavaFx Webview JDK 8 无法加载自签名证书

Xamarin Android 问题通过 HTTPS 连接到具有自签名证书的站点:“未找到证书路径的信任锚。”

倒腾HTTPSNginx for Docker自签名SSL证书

Android:来自Url的Webview中显示的图像具有高质量损失