ice world
There is nothing too difficult if you put your heart into it.
posts - 104, comments - 103, trackbacks - 0, articles - 0
導航
BlogJava
首頁
新隨筆
聯系
聚合
管理
<
2012年6月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(8)
給我留言
查看公開留言
查看私人留言
隨筆分類
ArcGIS(2)
CSS(4)
Database(14)
eclipse(10)
Hibernate(1)
Java(30)
Javascript(6)
Others(15)
Strut1(3)
Tomcat(7)
Weblogic(1)
Windows(13)
加解密(5)
隨筆檔案
2016年8月 (1)
2016年1月 (1)
2014年3月 (1)
2014年1月 (3)
2013年11月 (1)
2013年9月 (1)
2013年8月 (1)
2013年7月 (2)
2013年6月 (1)
2013年3月 (1)
2013年2月 (4)
2013年1月 (1)
2012年9月 (1)
2012年7月 (2)
2012年6月 (3)
2012年5月 (8)
2012年4月 (1)
2011年11月 (1)
2011年10月 (1)
2011年9月 (1)
2011年8月 (1)
2011年6月 (2)
2011年5月 (3)
2011年4月 (61)
2007年12月 (1)
搜索
最新評論
1.?re: Failed to load JavaHL Library解決方法
嘖嘖,一語中的。
--Jerry Zhang
2.?re: Error 1935的解決方法
我安裝上面的方法成功了,各位同學們,千萬別忘記修改注冊表后重啟電腦:)
--mentoruser
3.?re: CXF+Spring+Tomcat簡明示例
評論內容較長,點擊標題查看
--無異
4.?re: CXF+Spring+Tomcat簡明示例
評論內容較長,點擊標題查看
--chiangpan
5.?re: Failed to load JavaHL Library解決方法[未登錄]
頂頂頂
--小明
閱讀排行榜
1.?Failed to load JavaHL Library解決方法(78926)
2.?CXF+Spring+Tomcat簡明示例(51159)
3.?java RSA加密解密(42690)
4.?Java Tomcat SSL 服務端/客戶端雙向認證(一)(32923)
5.?Java DES文件加密解密 javax.crypto.BadPaddingException: Given final block not properly padded(30899)
評論排行榜
1.?CXF+Spring+Tomcat簡明示例(27)
2.?Java Tomcat SSL 服務端/客戶端雙向認證(一)(22)
3.?Java數字證書對文件/加密/解密/簽名/校驗簽名(8)
4.?java RSA加密解密(7)
5.?Failed to load JavaHL Library解決方法(6)
Java Tomcat SSL 服務端/客戶端雙向認證のApache HttpClient(二)
Posted on 2012-06-05 09:32
IceWee
閱讀(5224)
評論(1)
編輯
收藏
所屬分類:
Java
、
Tomcat
本演示例程是繼
Java Tomcat SSL 服務端/客戶端雙向認證(一)
,密鑰庫可證書的生成腳本不再重復黏貼,僅僅是用程序來代替瀏覽器訪問服務端。
例程中使用到了Apache HttpClient庫,版本為4.1.3
全部依賴庫:
commons-logging-1.1.1.jar
httpclient-4.1.3.jar
httpcore-4.1.4.jar
httpmime-4.1.3.jar(上傳文件使用)
在(一)中的程序包中創建一個客戶端類:HttpsClient
HttpsClient.java
package
com.icesoft.client;
import
java.io.BufferedReader;
import
java.io.File;
import
java.io.FileInputStream;
import
java.io.InputStream;
import
java.io.InputStreamReader;
import
java.security.KeyStore;
import
org.apache.http.HttpEntity;
import
org.apache.http.HttpResponse;
import
org.apache.http.client.HttpClient;
import
org.apache.http.client.methods.HttpGet;
import
org.apache.http.conn.scheme.Scheme;
import
org.apache.http.conn.ssl.SSLSocketFactory;
import
org.apache.http.impl.client.DefaultHttpClient;
import
org.apache.http.util.EntityUtils;
public
class
HttpsClient
{
private
static
final
String KEY_STORE_TYPE_JKS
=
"
jks
"
;
private
static
final
String KEY_STORE_TYPE_P12
=
"
PKCS12
"
;
private
static
final
String SCHEME_HTTPS
=
"
https
"
;
private
static
final
int
HTTPS_PORT
=
8443
;
private
static
final
String HTTPS_URL
=
"
https://127.0.0.1:8443/HttpClientSSL/sslServlet
"
;
private
static
final
String KEY_STORE_CLIENT_PATH
=
"
E:/ssl/client.p12
"
;
private
static
final
String KEY_STORE_TRUST_PATH
=
"
E:/ssl/client.truststore
"
;
private
static
final
String KEY_STORE_PASSWORD
=
"
123456
"
;
private
static
final
String KEY_STORE_TRUST_PASSWORD
=
"
123456
"
;
public
static
void
main(String[] args)
throws
Exception
{
ssl();
}
private
static
void
ssl()
throws
Exception
{
HttpClient httpClient
=
new
DefaultHttpClient();
try
{
KeyStore keyStore
=
KeyStore.getInstance(KEY_STORE_TYPE_P12);
KeyStore trustStore
=
KeyStore.getInstance(KEY_STORE_TYPE_JKS);
InputStream ksIn
=
new
FileInputStream(KEY_STORE_CLIENT_PATH);
InputStream tsIn
=
new
FileInputStream(
new
File(KEY_STORE_TRUST_PATH));
try
{
keyStore.load(ksIn, KEY_STORE_PASSWORD.toCharArray());
trustStore.load(tsIn, KEY_STORE_TRUST_PASSWORD.toCharArray());
}
finally
{
try
{ ksIn.close(); }
catch
(Exception ignore)
{}
try
{ tsIn.close(); }
catch
(Exception ignore)
{}
}
SSLSocketFactory socketFactory
=
new
SSLSocketFactory(keyStore, KEY_STORE_PASSWORD, trustStore);
Scheme sch
=
new
Scheme(SCHEME_HTTPS, HTTPS_PORT, socketFactory);
httpClient.getConnectionManager().getSchemeRegistry().register(sch);
HttpGet httpget
=
new
HttpGet(HTTPS_URL);
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());
BufferedReader bufferedReader
=
new
BufferedReader(
new
InputStreamReader(entity.getContent()));
String text;
while
((text
=
bufferedReader.readLine())
!=
null
)
{
System.out.println(text);
}
bufferedReader.close();
}
EntityUtils.consume(entity);
}
finally
{
httpClient.getConnectionManager().shutdown();
}
}
}
啟動Tomcat,運行HttpsClient,控制臺返回:
OK,和使用瀏覽器訪問得到的結果一模一樣!
全文完!
Feedback
#
re: Java Tomcat SSL 服務端/客戶端雙向認證のApache HttpClient(二)
回復
更多評論
2013-05-14 10:01 by
zhyg
為什么我的一直是“這是一個HTTPS請求,但是沒有可用的客戶端證書”?
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
Java日常隨意記
FTPClient上傳文件蝸牛速度的解決方法
HttpClientUtils
Java獲取本機IP列表
Exception loading sessions from persistent storage
Java Tomcat SSL 服務端/客戶端雙向認證のApache HttpClient(二)
Java Tomcat SSL 服務端/客戶端雙向認證(一)
Java MD5校驗工具類
ExceptionUtil 獲取異常堆棧內容
Java Zip Utils 壓縮/解壓縮工具包
Powered by:
BlogJava
Copyright © IceWee
主站蜘蛛池模板:
久久亚洲精品无码
|
在线免费一区二区
|
亚洲欧洲无码AV电影在线观看
|
国产成人精品日本亚洲直接
|
国产成人精品久久免费动漫
|
久久精品蜜芽亚洲国产AV
|
免费91最新地址永久入口
|
国产成A人亚洲精V品无码
|
少妇性饥渴无码A区免费
|
亚洲精品高清在线
|
免费无码国产V片在线观看
|
四虎永久成人免费
|
免费手机在线看片
|
亚洲国产精品乱码一区二区
|
亚洲网站在线免费观看
|
久久不见久久见免费视频7
|
内射干少妇亚洲69XXX
|
中国人xxxxx69免费视频
|
亚洲免费中文字幕
|
在线观看免费a∨网站
|
麻豆69堂免费视频
|
亚洲精品自产拍在线观看
|
性xxxxx大片免费视频
|
亚洲国色天香视频
|
国产免费卡一卡三卡乱码
|
国产精品免费久久久久久久久
|
亚洲精品无码永久中文字幕
|
最近免费中文字幕高清大全
|
亚洲最大无码中文字幕
|
亚洲国产91精品无码专区
|
无码日韩精品一区二区三区免费
|
色片在线免费观看
|
日韩a毛片免费观看
|
亚洲国产成人久久综合一
|
免费H网站在线观看的
|
免费在线观看自拍性爱视频
|
久久亚洲国产中v天仙www
|
91成人免费观看网站
|
日韩一级片免费观看
|
亚洲视频手机在线
|
无码国产亚洲日韩国精品视频一区二区三区
|