当前位置: 首页 > 知识库问答 >
问题:

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

陆卓
2023-03-14

我的问题是,我不能真正理解发生了什么--我的应用程序从今年3月起就没有更新过,而那时候一切都还好。证书也是有效的,后端没有任何更改。

此外,同样的应用程序在Android8及更高版本上运行,但没有任何问题(我没有在6和7上检查,因为我没有合适的设备)

有没有想法在老版本的Android上会有什么问题,以及如何解决...

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

谢谢和问候!

共有1个答案

韦高谊
2023-03-14

我的猜测是,Let's Encrypt root CA“isrg root x1”不是这些旧Android设备上信任存储的一部分。您可以通过在这些设备上的应用html" target="_blank">程序内部访问https://valid-isrgrootx1.letsencrypt.org/来检查这一点--如果失败,则根CA不在那里。

在这种情况下,要使验证正常工作而不对设备进行更改,您可以由服务器提供一个不同的中间证书,即由DST根CA X3颁发的Let's Encrypt Authority X3的CA证书,而不是您当前提供的由ISRG根X1颁发的Let's Encrypt Authority X3的证书。

有关更多信息,请参阅SSLLabs报告,并查找需要额外下载的第二个认证路径。

 类似资料:
  • 我正在Android上开发一个客户端应用程序,它连接到我的服务器,它在负载均衡器后面的AWS上,我在GoDaddy上创建了一个SSL证书,并将其添加到负载均衡器上。 浏览器上的一切都很顺利,它可以识别证书,但是当我试图用Android调用API时,我遇到了一个例外: 我找到了一些讨论谁说在app上添加证书,但是在证书服务器端是不是就没有办法修复了呢?这不是证书的问题吗?

  • 那里我需要与建立https连接https://free.temafon.ru但我在Android2.3及以下版本上遇到了CertPathValidator异常。我做了什么。 > 最终密钥库密钥库=密钥库。getInstance(“BKS”); 在这里,我使用custom TrustManager,因为服务器以错误的顺序发送证书。 此代码在Android 4.0上运行良好,但在2.3上失败,

  • 我遇到了Android4设备的一个问题,它在连接到服务器时收到以下异常: 但出于某种原因,我不明白它在Android4版本中开始失败了。 我尝试了信任所有证书的解决方案[LINK],它起作用了,但这显然存在安全问题,比如将您的应用程序暴露于“中间人”攻击 如何实现具有默认行为但仅将服务器的证书白名单的TrustManager。 在证书链给了我两个证书的格式: 用获得的url和证书替换了示例中的ur

  • 问题内容: android应用有三台主机进行身份验证和授权。最终主机是REST API。首次使用Oauth身份验证和授权过程,它可以正常工作。 但是,如果 用户 在登录并访问REST API提供的服务后 杀死了该应用程序 ,然后再次打开该应用程序,则会出现此问题。 在这段时间内,身份验证和授权过程不会发生,只有REST API会发生。 这是造成原因, 但在首次使用(登录然后使用该应用程序)期间正在

  • 问题内容: 我正在尝试建立与HTTPS站点的连接,并且我GOT打印例外:。 我的原始代码如下: 然后,我在这里阅读了Google的文章,并将代码修改为: 关于文件,我使用此站点来检查该站点的证书。我发现了3个证书,我不知道该使用哪个证书。我一一尝试。 一个名称“ VeriSign 3类公共主要证书颁发机构-G5”导致以下例外: 当我使用一个名称为“ VeriSign Class 3 Secure

  • 问题内容: 在我的服务器(生产服务器)中,我具有goDaddy ssl证书。我有iOS和Android应用程序都与服务器连接,iOS都没有问题连接,Android版本为4. 一切都很好,但是设备版本为2.3。我总是收到SSLHandshakeException。 我在Android开发人员页面(https://developer.android.com/training/articles/secu