`

通过httpClient连接 tomcat https (ssl)

阅读更多
HttpClient连接tomcat https(使用私有证书)

步骤一:

在www.apache.org下载所需的类包

commons-codec-1.3.jar

commons-httpclient-3.1-rc1.jar

commons-logging.jar

步骤二:

制作证书:

keytool -genkey -alias tomcat -keyalg RSA

任意输入,最后一个提示输入回车(保证两个密码相等)否则tomcat不能启动.

默认生成的文件在用户目录下.keystore

步骤三:

配置tomcat

更改tomcat配置文件server.xml

加入

<Connector port="8443" maxHttpHeaderSize="8192"

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" disableUploadTimeout="true"

               acceptCount="100" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS"

                        keystoreFile="C:\.keystore"   keystorePass="123456"

                        />

其中keystoreFile是刚生成文件的带全路径的名字

keystorePass是刚才建立证书时候的名字

启动tomcat,访问https:\\localhost:8443/如果能正常看到,说明tomcat的https配置成功.

步骤四:

生成jdk能使用的证书
1,用ie导出证书(导出方法:http://www.ibm.com/developerworks/cn/opensource/os-httpclient/#N10114)

2,假设上边导出文件的名字叫tt.cer

执行(确保配置了java  home)

keytool -import -noprompt -keystore D:\Java\jdk1.5.0_06\jre\lib\security\carcert -alias tomcat -file tt.cer –trustcacerts

其中红色的部分替换成自己jre的路径,alias同建立证书时的名字,file时刚才导出的证书的名字



会提示输入密码,输入刚才建立证书时输入的密码



步骤五:

编写代码


import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;


public class Test {
    public static void main(String[] args) throws Exception{
//        normal();
        ssl();

    }
    public static void ssl()throws Exception{
        String url = "https://127.0.0.1:8443/ts/";
        get(url);
    }
    public static void normal()throws Exception{
        String url = "http://127.0.0.1:8080/ts/";
        get(url);
    }
    public static void get(String url) throws Exception{
        HttpClient client = new HttpClient();
        GetMethod getMethod = new GetMethod(url);
        //设置成了默认的恢复策略,在发生异常时候将自动重试3次,在这里你也可以设置成自定义的恢复策略
        getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
                    new DefaultHttpMethodRetryHandler());
        //执行getMethod
        int statusCode = client.executeMethod(getMethod);
        if (statusCode != HttpStatus.SC_OK) {
          System.err.println("Method failed: " + getMethod.getStatusLine());
        }
        byte[] responseBody = getMethod.getResponseBody();
        System.out.println(new String(responseBody));
        getMethod.releaseConnection();
    }
}



普通连接和ssl连接只有一个差距就是url
分享到:
评论

相关推荐

    AndroidHttpClient访问Tomcat双向SSL验证服务器.pdf

    ### AndroidHttpClient访问Tomcat双向SSL验证服务器 #### 环境与背景介绍 本文主要讨论如何使用`AndroidHttpClient`访问`Tomcat`双向SSL验证服务器的相关技术和实施步骤。本项目的目标是在`Android WebView`上成功...

    httpclient4.1访问https的配置方法

    Apache HttpClient 4.1 是一个强大的Java库,用于执行HTTP请求,它也支持HTTPS连接。下面,我们将详细讲解如何配置HttpClient 4.1以访问HTTPS服务。 1. **生成KeyStore** 使用Java的`keytool`命令生成KeyStore是...

    java SSL HttpClient

    java SSL HttpClient。java 通过ssl去访问服务器(tomcat)

    基于Tomcat搭建SSL双向认证示例【100012422】

    本示例将深入探讨如何使用Tomcat搭建SSL(Secure Socket Layer)双向认证环境,以及通过Java原生类库SSLSocket进行编程,以及使用Apache的Httpclient库模拟安全的客户端请求。以下是对这些知识点的详细讲解。 首先...

    HttpClient SSL Tomcat和Eclipse

    可以使用`PoolingHttpClientConnectionManager`并设置相应的SSLContext,以便处理HTTPS连接。 4. **构建HttpClient实例**:使用`HttpClientBuilder`创建HttpClient实例,并配置连接管理器和其他设置,如超时时间、...

    httpClient4.1入门教程.pdf

    最后,文档还演示了如何使用HttpClient访问HTTPS协议的站点,包括生成KeyStore以及配置Tomcat服务器支持SSL的方法,并指导用户如何通过浏览器和HttpClient访问经过SSL加密的应用。 整体而言,本教程深入浅出地介绍...

    配置tomcat服务器支持SSL

    配置 Tomcat 服务器支持 SSL ...`&lt;Connector SSLEnabled="true" URIEncoding="UTF-8" clientAuth="false" keystoreFile="conf/tomcat.keystore" keystorePass="123456" maxThreads="150" port="8443" protocol=...

    httpClient4.1入门教程.

    6. HttpClient 连接 SSL:在处理 HTTPS 请求时,需要配置 SSL 相关设置。 1) 生成 KeyStore:使用 `keytool` 命令创建 KeyStore 文件,存储服务器的证书。 2) 配置 tomcat 服务器支持 SSL:在 Tomcat 配置文件 `...

    使用httpclient访问servlet

    如果Servlet需要HTTPS(SSL/TLS)加密,HttpClient需要配置SSLContext和TrustStrategy,处理证书和信任问题。 10. **最佳实践**: - 关闭响应实体和HttpClient实例以释放资源。 - 避免长时间持有HttpClient实例...

    httpclient-4.2.5 相关jar包

    HttpClient 4.2.5在处理HTTPS连接时,提供了证书管理的灵活性。开发者可以自定义TrustStore和KeyStore,以控制哪些服务器证书被接受,从而防止不安全的连接。此外,该版本还支持SSL/TLS的配置选项,比如设置最小加密...

    Android调用大宝CA国密SSL密码套件(0.99版本)访问HTTPS(国密SSL安全通道)的示例代码

    使用方法见:...1. Android使用HTTPCLIENT访问国密SSL协议的HTTPS服务 2. 示例代码为单向认证,可支持双向认证 3. 获取服务端的国密数字证书 4. 适用于Android 7.0(API 24)及以上

    HttpServer.zip_http servlet server_httpclient_http服务器_java https

    1. SSL/TLS原理:HTTPS基于SSL/TLS协议,通过公钥/私钥加密机制保证数据传输的安全性。服务器需要SSL证书,以证明其身份。 2. 配置HTTPS:在Java服务器中启用HTTPS,需要配置Keystore和Truststore,分别存储服务器...

    httpClient4.1入门教程.docx

    6. **HttpClient 连接 SSL**:配置 SSL 需要生成 KeyStore,配置 Tomcat 服务器支持 SSL,然后在 HttpClient 中设置 SSLContext 和 SchemeRegistry。 通过上述步骤,开发者可以快速上手使用 HttpClient 实现各种 ...

    httpClient4.1入门教程

    HttpClient中,你需要创建一个使用SSLContext的`SchemeRegistry`,并配置`HttpParams`以启用SSL连接。 ### 7. 官方例子与HttpClient4.1教程 Apache HttpClient的官方文档提供了许多示例代码,这些例子涵盖了从基本...

    HttpClient使用教程

    - 用 HttpClient 访问 HTTPS:配置 HttpClient 实例使用 SSLContext 和 TrustStrategy,允许信任所有证书,然后执行 HTTPS 请求。 教程版本说明: 该教程基于 HttpClient 4.1 版本,包括基础用法和 SSL 访问的...

    apache-tomcat-源码-lib包

    3. **Tomcat架构**:Tomcat由多个组件组成,如Catalina(核心Servlet容器)、Jasper(JSP引擎)、 Coyote(HTTP/HTTPS连接器)等。在源码中,你可以看到这些组件是如何协同工作来处理请求和响应的。 4. **类加载器*...

    apache-tomcat-5.5.30

    9. **集成其他Java EE组件**:尽管Tomcat本身仅支持Servlet和JSP,但可以与其他Java EE服务器(如JBoss或GlassFish)结合使用,通过例如Apache HttpClient或Jetty作为反向代理,实现对EJB、JMS等更复杂服务的支持。...

    Tomcat tcnative-1.dll文件x32和x64

    在Java环境中,使用`tcnative-1.dll`可以启用ALPN(Application-Layer Protocol Negotiation)协议,这是HTTP/2和SPDY协议的关键部分,可以提升HTTPS连接的性能。此外,该库还支持NPN(Negotiated Protocol)协议,...

Global site tag (gtag.js) - Google Analytics