android - 在 Android 5.x 和 4.x w 上找不到证书路径的信任 anchor 。让我们在服务器上加密

标签 android ssl android-volley lets-encrypt

我的应用程序遇到了一个众所周知的问题:SSL 握手上的 java 异常“javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:未找到证书路径的信任 anchor ”。

HTTP 请求是用 Volley 完成的

我的问题是我无法真正理解发生了什么——我的应用程序自今年 3 月以来就没有更新过,那时一切都很好。证书也有效,后端没有做任何更改。

此外,完全相同的应用程序在 Android 8 及更高版本上没有任何问题(我没有检查 6 和 7,因为我没有合适的设备)

是否知道在旧版本的 Android 上出现此问题会出现什么问题以及如何解决?...

网址:Site here

附注我尝试了两种方法,使用“https://www”和不使用“www”,都不能在 Android 5.0 及以下版本上运行

感谢和问候!

最佳答案

我的猜测是 Let's Encrypt 根 CA“ISRG Root X1”不是这些旧 Android 设备上信任库的一部分。您可以通过访问 https://valid-isrgrootx1.letsencrypt.org/ 进行检查从这些设备上的应用程序内部 - 如果失败,则根 CA 不存在。

要在这种情况下进行验证而不更改设备,您可以通过服务器提供不同的中间证书,即 this CA certificate for Let's Encrypt Authority X3由 DST Root CA X3 而不是 your currently provided certificate for Let's Encrypt Authority X3 颁发由 ISRG Root X1 发布。

有关详细信息,请参阅 the SSLLabs report并查找需要额外下载的第二个认证路径。

关于android - 在 Android 5.x 和 4.x w 上找不到证书路径的信任 anchor 。让我们在服务器上加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59477981/

相关文章:

c# - LDAP over SSL 在设置快速并发绑定(bind)时返回 'unwilling to perform' 错误 (PrincipalContext.ValidateCredentials)

ruby - 如何获取 Ruby SSLContext 对象的 ssl_version

Android Volley ImageLoader - BitmapLruCache 参数?

android - 使用 GSON 时的 Proguard 问题

php - 错误: Value UPDATE of type java. lang.String无法转换为JSONObject如何解决

java - 在没有 onSensorChanged() 事件的情况下从光传感器获取勒克斯值?

android - 尝试创建简单的 android 应用程序来启动网站

python - 将 SSL 验证与 Tweepy 结合使用

Android Volley 一个请求返回两次结果

Android Volley NetworkImageView 不适用于某些图像