解决开放平台的证书错误:ValidatorException:PKIX path validation failed
各开放平台使用SSL请求了,可是不小心证书就不能用了,以前碰到腾讯微博的类似问题,给他们说了马上就给解决了,今天又碰到类似问题,新浪微博的,他们不怎么给力,于是自己给解决了。
网上给出的解决方案是HttpsURLConnection强制信任所有SSL连接,可是对我的应用来说没用,我用了scribe的包,这个包压根没让我有机会去设置。
没办法,采用方案二:自己安装新浪微博的证书,此方法的好处是不用重启服务器也不用修改任何一行代码。
步骤如下:
①:下载微博证书
#openssl s_client -showcerts -connect api.weibo.com:443 >/tmp/weibo.cert </dev/null
②:编辑微博证书,用任何熟悉的编辑器,去掉weibo.cert文件中BEGIN CERTIFICATE和END CERTIFICATE之外的内容(注意有三个CERTIFICATE块,去掉第一个BEGIN CERTIFICATE之前和最后一个END CERTIFICATE之后的内容)
③:导入微博证书:
keytool -import -trustcacerts -alias root -file weibo.cert -keystore keystore
完成以上三步,再去访问你的应用,应该就好了,不用重启你的应用,也不用修改任何一行代码。
如果中间需要重新导入新的证书,需删除旧的证书;
keytool -delete -alias root -keystore keystore
%JAVA_HONME%\\jre\\lib\\security\\目录中