错误描述:
SSL_connect error:00000001:lib(0):func(0):reason(1)
SSL_connect error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
安卓端的时间有问题:系统是不保存时间的,每次开机从网络校时,经常出现校时延误甚至校时失败,拿一个比如说1970年的初始时间去检查证书的时间,所以认定证书“过期”了。
客户端或服务器的系统时间不在同一时间段内时SSL会因证书验证失败而无法连接.系统时间错误是很常见的。
因不能上网而未开时间自动同步,bios没电了,客户疏忽等原因都会导致系统时间有误.如果连接失败后再查看系统时间设置总是一项麻烦的事情,那么有哪些办法可以自动避免这个问题呢?
1,将证书的有效期设得够大:如:1970-2099
这样估计可以在一定程度上解决这个问题,不过这也是个馊主意。
2,检测及必要时自动同步客户端与服务器的时间
SSL建立连接的过程,发现在SSL握手过程中,会向对方传送本机的系统时间.因此一个显而易见的办法就是获取对方的时间,然后在必要时将本机的系统时间改为对方的系统时间,失败后再连一次。