2011年8月16日星期二

Java SSL 客户端程序无法和服务器握手的解决办法

很多HTTPS的网站的证书都有这样或者那样的问题,Google的网站我都见过证书有问题的,所以这些网站按照严格的标准是不应该被访问的,于是Java的SSL库当碰到这些网站时都会报错,具体体现在握手(Handshake)时,发了Client Hello,服务器回了Server Hello,SSL库发现证书有问题,马上回了Fatal: Unexpected Message,然后抛异常。解决的办法是:在运行时加上这个参数:-Dsun.security.ssl.allowUnsafeRenegotiation=true。

参考资料:http://stackoverflow.com/questions/2606873/sslexception-hellorequest-followed-by-an-unexpected-handshake-message