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 服務端/客戶端雙向認證(一)(32925)
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
主站蜘蛛池模板:
亚洲欧美日韩综合久久久
|
亚洲A∨午夜成人片精品网站
|
日韩免费观看一区
|
久久最新免费视频
|
一级一级一片免费高清
|
色多多免费视频观看区一区
|
99亚洲乱人伦aⅴ精品
|
成人亚洲国产精品久久
|
狼人大香伊蕉国产WWW亚洲
|
欧美日韩亚洲精品
|
黄色网址免费在线
|
四虎国产精品成人免费久久
|
午夜免费国产体验区免费的
|
又硬又粗又长又爽免费看
|
久久亚洲AV无码西西人体
|
亚洲情a成黄在线观看
|
亚洲精品美女久久777777
|
亚洲AV无码成人精品区蜜桃
|
亚洲国产精品一区二区久久
|
精品亚洲麻豆1区2区3区
|
亚洲另类图片另类电影
|
亚洲中文字幕一区精品自拍
|
人人狠狠综合久久亚洲
|
一级看片免费视频
|
久久久久久国产a免费观看不卡
|
你好老叔电影观看免费
|
先锋影音资源片午夜在线观看视频免费播放
|
91精品国产免费
|
99爱在线精品免费观看
|
真实乱视频国产免费观看
|
亚洲Av无码国产情品久久
|
亚洲香蕉网久久综合影视
|
亚洲AV一宅男色影视
|
亚洲成AV人综合在线观看
|
亚洲国产综合人成综合网站
|
亚洲av中文无码乱人伦在线咪咕
|
亚洲精品视频久久
|
亚洲а∨精品天堂在线
|
中文字幕在线免费观看视频
|
最好看最新的中文字幕免费
|
韩国18福利视频免费观看
|