繁体   English   中英

日期错误的Samsung SM A550W HTTPS ExtCertPathValidatorException

[英]Samsung SM A550W HTTPS ExtCertPathValidatorException with wrong date

我的应用程序可在除Samsung SM-A500W之外的所有设备和模拟器上运行。 它只是无法更新数据库。 通过存储在TLD安全域中的php脚本访问数据库(仅通过httpS访问)。 失败是因为它认为证书的过期日期已通过。 请参阅LogCat。

10-25 11:07:18.381 25547-25617/uro2.tradersmicro.com.uro2 D/Uploadi16: Exception jb: com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: Certificate expired at Sat Feb 18 18:59:59 EST 2017 (compared to Thu Oct 25 11:07:18 EDT 2018) javax.net.ssl.SSLHandshakeException: com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: Certificate expired at Sat Feb 18 18:59:59 EST 2017 (compared to Thu Oct 25 11:07:18 EDT 2018)

BTW。 我的应用程序片段之一使用WebView。 这部分的安全数据库访问是正常的。

有办法避免这种错误吗?

我发现解决此问题的方法是将php脚本复制到“非安全域”,并确保在脚本更新时对其进行更新。 在运行时:-在try ... catch中,将数据库访问权限更改为不安全的域。 到目前为止,它的运作就像是一种魅力。 当然,数据库访问发生在Async任务中,似乎可以从catch代码中递归地再次调用该方法。

我建议尝试使用Google Play服务更新设备安全提供程序:

https://developer.android.com/training/articles/security-gms-provider

import com.google.android.gms.security.ProviderInstaller;

// ....

try {
  ProviderInstaller.installIfNeeded(getContext());
} catch (GooglePlayServicesRepairableException e) {
  // TODO handle error
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM