HttpClient3.0.1 https配置 接收单个站点的SSL证书


1. 下载站点的证书文件

访问https站点,如下图:


点击Certificate Error  --> View certificates, 弹出该站点的证书信息,如下图:


                                   图2

根据颁发给,颁发者,有效起始日期等信息到IE中找相应的证书,具体步骤如下:

 在IE中依次选择Tools --> Internet Options --> Content --> 点击Certificates, 在弹出的【证书】对话框中选择【受信任的根证书颁发机构】,在这里找到与图2对应的证书,如下图所示:


                                                                 图3

点击【导出】,弹出【证书导出向导】对话框,如下图所示:


                                                           图4

点击【下一步】,选择默认的【DER编码二进制 X.509 (.CER)】就行,如下图


                                                                                图5

点击【下一步】,将证书导出为C:\cert\WIN-TSJZUR65S8T.cer, 如下图


                                                                        图6

点击【下一步】


                                                                图7

点击【完成】,弹出【导出成功】提示,如下图所示


                                                                                 图8

到此为止,站点的证书就成功导出了,下面要将证书添加到JRE环境中。


首先在WIN-TSJZUR65S8T.cer文件的同一目录下新建一个Add-SSL.bat文件,即C:\cert\WIN-TSJZUR65S8T.cer. Add-SSL.bat文件内容如下:

@echo off
C:/Java/jre6/bin/keytool -import -v -trustcacerts -file WIN-TSJZUR65S8T.cer -keystore 209.cer
pause


其中C:/Java/jre6/bin/keytool这个必须是运行项目所用的jre,这样才能在代码中使用证书的信息


双击运行Add-SSL.bat文件,出现如下图内容:


                                                                                                       图9

输入密码123456,回车,出现如下图所示:



再次输入密码123456,回车




输入【是】,回车




这是,在Add-SSL.bat文件的同一目录下生成了一个209.cer文件,即C:\cert\209.cer


将这个209.cer文件拷贝到jre目录下的lib\security\目录下,这里指C:\Java\jre6\lib\security\目录,这里的C:\Java\jre6\要与前面使用keytool命令时的是同一个jre,如下图所示:



这样,我们就可以在代码中使用之前配置的证书信息了。需要注意的是,运行代码的jre一定要和证书配置的jre一致,即C:\Java\jre6\,这样才能使证书生效。


在代码中使用证书信息,只要在使用commons-httpclient代码之前,设置【javax.net.ssl.trustStore】和【javax.net.ssl.trustStorePassword】两个系统变量即可

【javax.net.ssl.trustStore】变量的值指向209.cer文件, 即C:\Java\jre6\lib\security\209.cer

【javax.net.ssl.trustStorePassword】变量的值为之前设置的证书的密码,即123456


代码的顺序结构如下图所示:



这样就能用commons-httpclient访问https站点了。


参考资料:

http://11lingxian.iteye.com/blog/655965

http://technet.microsoft.com/zh-cn/library/bb879943


你可能感兴趣的:(HttpClient)