Android WebView 抱怨证书不受信任,但它在所有其他浏览器中都受信任

Android WebView complains of untrusted certificate but it is trusted in all other browsers

我的应用程序在网络视图中打开一个 link 到外部网站。我们不控制该外部网站。如果我在移动浏览器或 PC 上的浏览​​器等中打开此 link,它工作正常。证书在每种情况下都是“受信任的”。但是,在 Android webview 中,我收到“不受信任的证书”错误,并且 google 策略不允许我简单地忽略该错误。这可能是什么问题?这是 Webview 中的错误吗?

一般来说,浏览器处理证书的方式略有不同,以解决您遇到的问题。我不熟悉浏览器的内部结构,无法指出完全不同的地方,但我建议他们持有定期更新的受信任证书颁发机构 (CA) 列表,比存储在设备上的受信任 CA 列表更频繁。

收到的证书可以信任:

  • 由 Android OS;
  • 通过应用程序(见下文)。我想这是浏览器使用的替代选项。

您必须通过提供修改后的 SSLContext 来解决此问题。如何提供修改后的 SSLContext can be found here.

这不是您的情况,但当证书是自签名时也会出现此问题。这是我在开发应用程序和连接到使用自签名证书的支持 TLS 的后端时遇到的情况。