您的位置:首页 > 理论基础 > 计算机网络

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

2013-01-12 23:54 591 查看
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站点了。

参考资料:

/content/3355353.html

http://technet.microsoft.com/zh-cn/library/bb879943
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: