錯誤描述:
SSL_connect error:00000001:lib(0):func(0):reason(1)
SSL_connect error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
安卓端的時間有問題:系統(tǒng)是不保存時間的乎澄,每次開機從網(wǎng)絡(luò)校時败许,經(jīng)常出現(xiàn)校時延誤甚至校時失敗算柳,拿一個比如說1970年的初始時間去檢查證書的時間尿这,所以認定證書“過期”了。
客戶端或服務(wù)器的系統(tǒng)時間不在同一時間段內(nèi)時SSL會因證書驗證失敗而無法連接.系統(tǒng)時間錯誤是很常見的。
因不能上網(wǎng)而未開時間自動同步,bios沒電了,客戶疏忽等原因都會導(dǎo)致系統(tǒng)時間有誤.如果連接失敗后再查看系統(tǒng)時間設(shè)置總是一項麻煩的事情略贮,那么有哪些辦法可以自動避免這個問題呢?
1仗岖,將證書的有效期設(shè)得夠大:如:1970-2099
這樣估計可以在一定程度上解決這個問題逃延,不過這也是個餿主意。
2轧拄,檢測及必要時自動同步客戶端與服務(wù)器的時間
SSL建立連接的過程揽祥,發(fā)現(xiàn)在SSL握手過程中,會向?qū)Ψ絺魉捅緳C的系統(tǒng)時間.因此一個顯而易見的辦法就是獲取對方的時間檩电,然后在必要時將本機的系統(tǒng)時間改為對方的系統(tǒng)時間拄丰,失敗后再連一次。