[英]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.