- 浏览: 89529 次
- 性别:
- 来自: 河北
文章分类
最新评论
httpclient 通过https访问网站的方式有两种,一种是需要导入证书,一种是不需要的。导入证书的安全性比较高,但是如果网站证书更新了,证书需要重新导入。下面的例子是不安全的:
package net.ben;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.util.ArrayList;
import java.util.List;
public class HttpClientTest {
public static void main(String[] args) throws Exception {
DefaultHttpClient httpClient = new DefaultHttpClient();
try {
TrustManager easyTrustManager = new X509TrustManager() {
public void checkClientTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {
//To change body of implemented methods use File | Settings | File Templates.
}
public void checkServerTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {
//To change body of implemented methods use File | Settings | File Templates.
}
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new java.security.cert.X509Certificate[0]; //To change body of implemented methods use File | Settings | File Templates.
}
};
SSLContext sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(null, new TrustManager[]{easyTrustManager}, null);
SSLSocketFactory sf = new SSLSocketFactory(sslcontext);
Scheme sch = new Scheme("https", 443, sf);
httpClient.getConnectionManager().getSchemeRegistry().register(sch);
HttpGet httpget = new HttpGet("https://www.xxx.com/");
System.out.println("executing request" + httpget.getRequestLine());
HttpResponse response = httpClient.execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
String content = EntityUtils.toString(entity);
System.out.println(content);
} finally {
httpClient.getConnectionManager().shutdown();
}
}
}
package net.ben;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.util.ArrayList;
import java.util.List;
public class HttpClientTest {
public static void main(String[] args) throws Exception {
DefaultHttpClient httpClient = new DefaultHttpClient();
try {
TrustManager easyTrustManager = new X509TrustManager() {
public void checkClientTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {
//To change body of implemented methods use File | Settings | File Templates.
}
public void checkServerTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {
//To change body of implemented methods use File | Settings | File Templates.
}
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new java.security.cert.X509Certificate[0]; //To change body of implemented methods use File | Settings | File Templates.
}
};
SSLContext sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(null, new TrustManager[]{easyTrustManager}, null);
SSLSocketFactory sf = new SSLSocketFactory(sslcontext);
Scheme sch = new Scheme("https", 443, sf);
httpClient.getConnectionManager().getSchemeRegistry().register(sch);
HttpGet httpget = new HttpGet("https://www.xxx.com/");
System.out.println("executing request" + httpget.getRequestLine());
HttpResponse response = httpClient.execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
String content = EntityUtils.toString(entity);
System.out.println(content);
} finally {
httpClient.getConnectionManager().shutdown();
}
}
}
发表评论
-
cas-server 4.0.0 maven 编译
2015-06-17 14:21 5335最近需要用到cas sso单点登录,所以需要调研下cas服务, ... -
日常服务异常解决问题
2015-03-31 10:24 10651问题: Tomacat7启动报错-org.apache.ca ... -
Java 正则表达式
2014-07-08 20:15 4311:验证是否为URL且后缀为.jpeg等图片格式的地址: Pa ... -
ibatis like 防止sql注入
2014-06-25 16:18 717ibatis like查询防sql注入 为了防止SQL注入,i ... -
flex集成环境配置
2014-02-27 16:35 7311、登陆adobe官网,下载 Flash builder(我下 ... -
myeclipse 10 破解遇到问题解决方案
2014-01-09 17:48 556点击run运行时,无法启动破解程序 1、编辑run内容,将 * ... -
centos memcached
2013-09-03 23:24 669CentOS 安装配置memcached (转) 1、先下载m ... -
java服务端http请求post 发送数据量限制
2013-03-25 11:22 5204使用HttpClient的post提交数据遇到的有关问题 使 ... -
java 大数据次方运算
2013-01-23 15:20 3420/**引用网络文档*/ import java.io.Buff ... -
httpclient访问https
2012-09-14 16:00 4026package com.jadyer.util; ... -
tomcat6中配置SSL双向认证
2012-09-14 16:32 864原文出自:http://htallen.ite ... -
详解 Nginx + Tomcat HTTPS/SSL 配置
2012-09-14 15:21 1033转载:http://my.oschina.net/zhlmmc ... -
tomcat配置http和https访问
2012-09-14 14:52 1762设置使tomcat既支持http访问,也支持https访问。需 ... -
https访问设置
2012-09-14 13:47 2import java.io.IOException; imp ... -
spring mvc整合freemarker基于注解方式
2012-05-22 09:54 980<?xml version="1.0" ...
相关推荐
这个过程中,可能会遇到证书不受信任、证书链不完整等问题,此时需要根据实际情况调整信任管理器或导入缺失的中间证书。对于自签名证书,可能还需要在代码中绕过默认的信任检查。 总结来说,Java实现读取证书访问...
2. **IIS集成**:win-acme与Windows的IIS服务器紧密集成,可以自动配置IIS站点的HTTPS设置,包括导入证书和更新绑定。 3. **定期续订**:由于Let's Encrypt的证书有效期为90天,win-acme提供了自动续订功能,确保在...
- 使用相同的步骤,即通过`Win+R`打开`mmc`,找到“个人”存储下的“所有任务”>“导入证书”,选择共享文件夹内的证书。 7. **创建自签名证书**: - 在证书服务器中右键选择“创建自签证书”。 - 完成创建后,...
此外,为了安全起见,应确保DLL在导入证书时遵循最佳实践,例如限制对私钥的访问权限。 总之,通过C++和DLL接口在Windows系统中导入.pem证书涉及了文件操作、编码解码、证书解析以及Windows API的调用等多个环节。...
本教程将详细介绍如何在 WAS 9 或 WAS 8 上配置 HTTPS 证书,以实现安全的 HTTPS 访问。 首先,我们需要创建一个经过证书颁发机构 (CA) 认证的密钥库文件。这通常涉及到以下几个步骤: 1. 使用 Java 提供的 `...
当访问需要客户端认证的HTTPS接口时,通常需要提供数字证书以证明客户端的身份。本篇文章将深入探讨如何使用HttpClient来处理这种情况。 HttpClient是一个强大的Java库,用于执行HTTP请求。然而,当遇到需要客户端...
要使`httpclient`支持HTTPS访问,首先需要配置SSL上下文。这通常涉及到证书管理、密钥存储以及信任管理等环节。 ### 关键技术细节 #### 3.1 配置SSL上下文 在`httpclient`中使用HTTPS,首先要解决的是SSL上下文的...
在WAS 8.5.5中配置HTTPS主要分为以下几个步骤:生成证书、导入证书、配置SSL端点以及部署应用。 #### 三、生成证书 1. **在本机生成证书** - 打开命令行窗口,执行以下命令生成密钥库文件(本例中用于测试目的):...
- **证书安装与管理**:包括证书的导入、导出、查看等功能。 - **证书验证**:提供对数字证书有效性的检查方法,如验证证书是否过期、是否被吊销等。 - **加密解密操作**:支持基于数字证书的加密解密功能。 - **...
导入证书到JMeter的过程如下: 1. 打开JMeter,点击菜单栏的“选项”(Options) -> “SSL Manager”。 2. 在弹出的“SSL Manager”窗口中,点击“导入…”按钮,选择你之前导出的证书文件。 3. 输入证书的密码(如果...
1. **导入证书和密钥** - 登录到F5设备后,进入“系统”->“文件管理”->“SSL证书列表”。 - 导入**Server证书**、**CA证书**以及**KEY**。 - 在导入**KEY**时,需要定义名称并选择文件来源。 - 对于**证书**的...
- 如果需要双向认证,则还需要为客户端生成证书并将其导入到服务器的信任证书列表中。这一步对于简单的跨域请求不是必需的。 2. **配置Tomcat以支持HTTPS**: - 在Tomcat的`conf/server.xml`文件中,找到或添加`...
- Android中,证书可能需要导入到KeyStore系统中,使用特定的KeyChain API访问。 对于错误处理,如证书不受信任或证书过期,需要在`IOS`的`NSURLSessionDelegate`或`Android`的`SSLSocketFactory`中捕获并处理。 ...
Web服务器需要将生成的私钥和证书导入到服务器的密钥库中。 5. **源码解析**: - 虽然Keytool是Java的一部分,但其源码并不是公开的。然而,了解其工作原理可以帮助开发者实现自定义的安全工具。 6. **安全性考虑*...
导入证书到浏览器 - **示例步骤**: 1. 访问HTTPS站点时,浏览器可能会弹出安全警告。 2. 将自签名证书或第三方CA颁发的证书导入到浏览器中。 3. 重启浏览器后再次访问HTTPS站点,此时应该不会出现安全警告。 ##...
同时,我们需要配置Ingress规则来定义外部访问Kuboard的方式。在`ingress.yaml`文件中,定义了Ingress对象,指定服务名、端口和主机名,如`kuboard.com`。 为了实现HTTPS认证,我们需要生成相关的证书和密钥。这里...
在IT行业中,Tomcat是一个广泛使用的...这将允许你的应用根据需要提供安全或非安全的访问方式,为用户提供更好的安全体验。在部署时,确保考虑所有安全最佳实践,如定期更新证书,使用强密码,并限制对密钥库的访问。
同时,CA证书颁发也可以确保数据传输的安全,因为客户机和网站服务器之间的通信可以使用SSL/TLS加密方式,以保护数据的安全。 在实验中,我们使用了Win2003服务器,安装了Web服务和DNS服务,以提供域名称服务。我们...
- **安装证书**:将下载的证书导入到 Web 服务器的个人证书存储库中。通常,可以通过“Internet 信息服务(IIS)管理器”中的相应选项来完成此操作。 #### 六、为 WEB 站点配置 SSL **步骤5:为 WEB 站点配置 SSL*...