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
主站蜘蛛池模板:
91精品成人免费国产
|
久久久久亚洲AV成人网人人软件
|
一级A毛片免费观看久久精品
|
亚洲精品视频久久
|
三上悠亚亚洲一区高清
|
国产一级淫片免费播放
|
曰批视频免费30分钟成人
|
久草免费福利资源站
|
国产免费一区二区三区免费视频
|
久久精品亚洲日本波多野结衣
|
美女被爆羞羞网站免费
|
亚洲国产美女视频
|
久久亚洲AV午夜福利精品一区
|
老妇激情毛片免费
|
亚洲中文无码mv
|
亚洲免费观看网站
|
久久精品国产亚洲AV嫖农村妇女
|
免费人成在线观看播放a
|
亚洲中文字幕AV在天堂
|
亚洲黄色在线观看视频
|
亚洲AV无码国产精品麻豆天美
|
国产免费伦精品一区二区三区
|
国产精品亚洲精品日韩电影
|
亚洲色一区二区三区四区
|
亚洲性一级理论片在线观看
|
亚洲宅男永久在线
|
18gay台湾男同亚洲男同
|
亚洲AV乱码一区二区三区林ゆな
|
精品人妻系列无码人妻免费视频
|
噜噜噜亚洲色成人网站
|
国产AV无码专区亚洲AV麻豆丫
|
国产精品免费视频一区
|
在线a毛片免费视频观看
|
日韩毛片免费在线观看
|
免费看无码自慰一区二区
|
国产人在线成免费视频
|
91精品免费在线观看
|
青青在线久青草免费观看
|
国产精品视频永久免费播放
|
成人黄动漫画免费网站视频
|
免费乱理伦在线播放
|