绕开HttpClient里的SSLPeerUnverifiedException: peer not authenticated异常
最近客户抱怨我们的cobrowsing服务无法访问他们的服务器,查看日志发现以下异常:
最初根据搜索结果得知是我们用的HttpClient客户端不认可服务器的SSL证书导致,于是用了网上的办法来绕过服务器证书检查:
但是依然报错,后来研究得知,这个问题不是在服务器端证书的检查,而在客户端证书检查,然后我试着给了一个证书,但是依然报错。没办法只好根据调用站定位到org.apache.http.conn.ssl.SSLSocketFactory.createSocket里,派生该类,重新实现createSocket,然后不执行verify方法,经过测试就没有出现这个问题了:
这个因为绕过了双向的证书检查,会带来潜在的不安全性比如中间人攻击,但是考虑到cobrowsing本身对安全性要求并不太高,也就算了。
Last modified on 2014-03-12