安卓中证书报错
根证书不在有效期报错
报错信息
Failed to connect to server: javax.net.ssl.SSLHandshakeException: Unacceptable certificate: CN=GTS CA 1C3, O=Google Trust Services LLC, C=US
访问的域名证书不在有效期报错
报错信息
javax.net.ssl.SSLHandshakeException: Chain validation failed
复现方法:
1.获取对应域名的相关证书的有效期,可以通过Chrome浏览器中的安全图标查看
如 访问https://www.baidu.com域名
对应CA证书有效期 :2021/7/1 到 2022/8/2
对应的二级根证书的有效期: 2014/2/20 到 2024/2/20
对应的一级根证书的有效期:1998/9/1 到 2028/1/28
2.设置机器的系统时间到对应证书有效期之外,访问对应域名就会报错
域名证书过期:Chain validation failed
根证书过期: Unacceptable certificate: CN=GTS CA 1C3, O=Google Trust Services LLC, C=US
业务报错的原因分析
1. Ntp时间同步失败
开机后机器同步时间失败,日志如下
system_process D/SntpClient: request time failed: java.net.SocketTimeoutException: Poll timed out
system_process D/NtpTrustedTime: setServer:[time.android.com]
之后更换ntp服务器同步成功:
system_process D/NetworkTimeUpdateService: mTryAgainCounter = 1;mNtpServers.size() = 2;index = 1;mNtpServers = asia.pool.ntp.org
system_process D/NtpTrustedTime: setServer:[asia.pool.ntp.org]
system_process D/SntpClient: round trip: 304ms, clock offset: 115ms
system_process D/NtpTrustedTime: setServer:[time.android.com]
2.默认时间处在证书有效期之外,报错
由于业务的执行也是开机后执行,时间同步没有成功就执行网络请求,导致失败