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验证服务器 #### 环境与背景介绍 本文主要讨论如何使用`AndroidHttpClient`访问`Tomcat`双向SSL验证服务器的相关技术和实施步骤。本项目的目标是在`Android WebView`上成功...
Apache HttpClient 4.1 是一个强大的Java库,用于执行HTTP请求,它也支持HTTPS连接。下面,我们将详细讲解如何配置HttpClient 4.1以访问HTTPS服务。 1. **生成KeyStore** 使用Java的`keytool`命令生成KeyStore是...
java SSL HttpClient。java 通过ssl去访问服务器(tomcat)
本示例将深入探讨如何使用Tomcat搭建SSL(Secure Socket Layer)双向认证环境,以及通过Java原生类库SSLSocket进行编程,以及使用Apache的Httpclient库模拟安全的客户端请求。以下是对这些知识点的详细讲解。 首先...
可以使用`PoolingHttpClientConnectionManager`并设置相应的SSLContext,以便处理HTTPS连接。 4. **构建HttpClient实例**:使用`HttpClientBuilder`创建HttpClient实例,并配置连接管理器和其他设置,如超时时间、...
最后,文档还演示了如何使用HttpClient访问HTTPS协议的站点,包括生成KeyStore以及配置Tomcat服务器支持SSL的方法,并指导用户如何通过浏览器和HttpClient访问经过SSL加密的应用。 整体而言,本教程深入浅出地介绍...
配置 Tomcat 服务器支持 SSL ...`<Connector SSLEnabled="true" URIEncoding="UTF-8" clientAuth="false" keystoreFile="conf/tomcat.keystore" keystorePass="123456" maxThreads="150" port="8443" protocol=...
6. HttpClient 连接 SSL:在处理 HTTPS 请求时,需要配置 SSL 相关设置。 1) 生成 KeyStore:使用 `keytool` 命令创建 KeyStore 文件,存储服务器的证书。 2) 配置 tomcat 服务器支持 SSL:在 Tomcat 配置文件 `...
如果Servlet需要HTTPS(SSL/TLS)加密,HttpClient需要配置SSLContext和TrustStrategy,处理证书和信任问题。 10. **最佳实践**: - 关闭响应实体和HttpClient实例以释放资源。 - 避免长时间持有HttpClient实例...
HttpClient 4.2.5在处理HTTPS连接时,提供了证书管理的灵活性。开发者可以自定义TrustStore和KeyStore,以控制哪些服务器证书被接受,从而防止不安全的连接。此外,该版本还支持SSL/TLS的配置选项,比如设置最小加密...
使用方法见:...1. Android使用HTTPCLIENT访问国密SSL协议的HTTPS服务 2. 示例代码为单向认证,可支持双向认证 3. 获取服务端的国密数字证书 4. 适用于Android 7.0(API 24)及以上
1. SSL/TLS原理:HTTPS基于SSL/TLS协议,通过公钥/私钥加密机制保证数据传输的安全性。服务器需要SSL证书,以证明其身份。 2. 配置HTTPS:在Java服务器中启用HTTPS,需要配置Keystore和Truststore,分别存储服务器...
6. **HttpClient 连接 SSL**:配置 SSL 需要生成 KeyStore,配置 Tomcat 服务器支持 SSL,然后在 HttpClient 中设置 SSLContext 和 SchemeRegistry。 通过上述步骤,开发者可以快速上手使用 HttpClient 实现各种 ...
HttpClient中,你需要创建一个使用SSLContext的`SchemeRegistry`,并配置`HttpParams`以启用SSL连接。 ### 7. 官方例子与HttpClient4.1教程 Apache HttpClient的官方文档提供了许多示例代码,这些例子涵盖了从基本...
- 用 HttpClient 访问 HTTPS:配置 HttpClient 实例使用 SSLContext 和 TrustStrategy,允许信任所有证书,然后执行 HTTPS 请求。 教程版本说明: 该教程基于 HttpClient 4.1 版本,包括基础用法和 SSL 访问的...
3. **Tomcat架构**:Tomcat由多个组件组成,如Catalina(核心Servlet容器)、Jasper(JSP引擎)、 Coyote(HTTP/HTTPS连接器)等。在源码中,你可以看到这些组件是如何协同工作来处理请求和响应的。 4. **类加载器*...
9. **集成其他Java EE组件**:尽管Tomcat本身仅支持Servlet和JSP,但可以与其他Java EE服务器(如JBoss或GlassFish)结合使用,通过例如Apache HttpClient或Jetty作为反向代理,实现对EJB、JMS等更复杂服务的支持。...
在Java环境中,使用`tcnative-1.dll`可以启用ALPN(Application-Layer Protocol Negotiation)协议,这是HTTP/2和SPDY协议的关键部分,可以提升HTTPS连接的性能。此外,该库还支持NPN(Negotiated Protocol)协议,...