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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
// JBuilder API Decompiler stub source generated from class file // 2010-1-15 // -- implementation of methods is not available package org.apache.commons.httpclient; // Imports import java.io.IOException; import org.apache.commons.httpclient.params.HttpClientParams; import org.apache.commons.logging.Log; public class HttpClient { // Fields private static final Log LOG; private HttpConnectionManager httpConnectionManager; private HttpState state; private HttpClientParams params; private HostConfiguration hostConfiguration; // Constructors public HttpClient() { } public HttpClient(HttpClientParams params) { } public HttpClient(HttpClientParams params, HttpConnectionManager httpConnectionManager) { } public HttpClient(HttpConnectionManager httpConnectionManager) { } // Methods public synchronized HttpState getState() { return null;} public synchronized void setState(HttpState state) { } public synchronized void setStrictMode(boolean strictMode) { } public synchronized boolean isStrictMode() { return false;} public synchronized void setTimeout(int newTimeoutInMilliseconds) { } public synchronized void setHttpConnectionFactoryTimeout(long timeout) { } public synchronized void setConnectionTimeout(int newTimeoutInMilliseconds) { } public int executeMethod(HttpMethod method) throws IOException, HttpException { return 0;} public int executeMethod(HostConfiguration hostConfiguration, HttpMethod method) throws IOException, HttpException { return 0;} public int executeMethod(HostConfiguration hostconfig, HttpMethod method, HttpState state) throws IOException, HttpException { return 0;} public String getHost() { return null;} public int getPort() { return 0;} public synchronized HostConfiguration getHostConfiguration() { return null;} public synchronized void setHostConfiguration(HostConfiguration hostConfiguration) { } public synchronized HttpConnectionManager getHttpConnectionManager() { return null;} public synchronized void setHttpConnectionManager(HttpConnectionManager httpConnectionManager) { } public HttpClientParams getParams() { return null;} public void setParams(HttpClientParams params) { } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值