用Apache的httpClient客户端,现在需要连接https的链接.一般方式会报错:SunCertPathBuilderException: unable to find valid certification path to requested target
最简单的方式就是把证书用浏览器下载下来,在需要访问的机器上导入:
(1)下载证书,保存为greentree.cer(名字随便)
(2)命令行进入到 JRE: jre\lib\security这个目录下
(3)keytool -import -alias cacerts -keystore cacerts -file C:\greentree.cer -trustcacerts
(4)此时命令行会提示你输入cacerts证书库的密码,你敲入changeit就行了,这是java中cacerts证书库的默认密码,
(5)其余和http调用一样
也可以用程序的方式实现,挺麻烦的:
下面试创建client片段:
ConnectionSocketFactory plainsf = <...>
LayeredConnectionSocketFactory sslsf = <...>
Registry<ConnectionSocketFactory> r = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", plainsf)
.register("https", sslsf)
.build