Android8/9修改设备时间为7天以上未来日期报SSLHandshakeException异常
异常触发原因
该异常的核心触发点是系统OCSP(在线证书状态协议)校验失败,具体逻辑如下:
- Android 8.0及以上系统默认强制开启SSL证书撤销状态的OCSP Stapling校验机制,用于验证证书是否被CA吊销,属于系统原生的安全防护逻辑
- 由CA签发的OCSP响应默认有效时间窗口通常为7天,当设备系统时间被调整到超出当前实际时间7天以上的未来时,系统本地时间已经落在OCSP响应的有效区间外,因此触发
Response is unreliable: its validity interval is out-of-date报错,最终导致SSL握手失败 - 间隔7天以内调整时间时,系统时间仍处于OCSP响应的有效窗口内,校验可正常通过;Android 5系统未默认开启OCSP Stapling强制校验,因此不会触发该问题
解决方案
分场景选择对应处理方式:
普通用户正常使用场景
直接将设备系统时间校准为当前实际时间即可,该校验机制用于防范证书盗用、过期等安全风险,不建议随意关闭。
测试场景需要强制调整系统时间到未来的情况
可按需选择以下方案,所有绕过校验的方案禁止在生产环境使用,会带来严重的信息安全风险:
- 调整服务端OCSP Stapling的缓存有效期,将有效窗口延长至测试需要的时间跨度,测试完成后恢复默认配置即可
- 测试版本的APP自定义TrustManager,临时关闭OCSP校验逻辑,仅在测试环境使用
- 测试环境使用自签名证书搭建服务,绕开CA机构的OCSP校验规则
内容的提问来源于stack exchange,提问作者peakpeakt
相关产品推荐
相关产品推荐

