锘??xml version="1.0" encoding="utf-8" standalone="yes"?>在线亚洲v日韩v,亚洲男人都懂得羞羞网站,亚洲色成人WWW永久在线观看http://m.tkk7.com/stevenjohn/category/52693.html閭d簺闈掓槬鐨勫瞾鏈?/description>zh-cnSun, 10 May 2015 23:15:39 GMTSun, 10 May 2015 23:15:39 GMT60Http Https Webservicehttp://m.tkk7.com/stevenjohn/archive/2015/05/10/424974.htmlabinabinSun, 10 May 2015 03:27:00 GMThttp://m.tkk7.com/stevenjohn/archive/2015/05/10/424974.htmlhttp://m.tkk7.com/stevenjohn/comments/424974.htmlhttp://m.tkk7.com/stevenjohn/archive/2015/05/10/424974.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/424974.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/424974.html1.Http浣滀負web鏈嶅姟鐨勯閫夊崗璁紝灞呮湁4澶т紭鐐癸細
   1錛塰ttp闈炲父綆鍗曪紝浠ョ函鏂囨湰(瓚呮枃鏈?褰㈠紡緙栫爜鐨勮姹傚拰鍝嶅簲緇勬垚
   2錛塰ttp鏄棤鐘舵佺殑銆備竴鏃﹀彂閫佷簡涓涓猦ttp璇鋒眰錛屽鎴峰拰鏈嶅姟鍣ㄤ箣闂寸殑榪炴帴淇℃伅灝變細琚噴鏀撅紝鏈夊埄浜庡噺灝戞湇鍔″櫒璧勬簮鐨勬秷鑰椼?br />   3錛塰ttp鐨勮繍琛岀鍙?0錛屽湪澶у鏁伴槻鐏涓婃槸鍏紑鐨?br />   4錛夎涓氳鍙?br />  浣嗘槸Http鐨勭己鐐癸細
   1錛夌己灝戝寮傛娑堟伅鐨勬敮鎸?br />   2錛夋秷鎭紶杈撶殑涓嶅彲闈犳?br />

web service鐩稿http (post/get)鏈夊ソ澶勫悧錛?/h3>

 

1.鎺ュ彛涓疄鐜扮殑鏂規硶鍜岃姹傚弬鏁頒竴鐩簡鐒?/p>

2.涓嶇敤鎷呭績澶у皬鍐欓棶棰?/p>

3.涓嶇敤鎷呭績涓枃urlencode闂

4.浠g爜涓笉鐢ㄥ嬈″0鏄庤璇?璐﹀彿,瀵嗙爜)鍙傛暟

5.浼犻掑弬鏁板彲浠ヤ負鏁扮粍錛屽璞$瓑...

http鍜寃ebservice鐨勫尯鍒細
1銆乭ttp鏄噰鐢╣et錛宲ost絳夋柟寮忎紶杈撴暟鎹紝鑰寃ebservice鏄噰鐢▁ml鏍煎紡鎵撳寘鏁版嵁錛屼紶杈撴槸鍩轟簬http鍗忚榪涜浼犺緭銆?br />2銆乭ttp鐩存帴浼犺緭鏁版嵁錛岃寃ebservice鏄噰鐢▁ml緙栬В鐮佹暟鎹紝鎵浠ヨ兘閫熷害涓婇潰鏈変簺鎱€?br />3銆亀ebservice鍙互鐩存帴浼犺緭鏁扮粍鎴栬呭璞$殑鏁版嵁鏍煎紡錛屽疄闄呯幇鍦ㄥ父鐢ㄧ殑http+json涔熷彲浠ョ殑錛屽彧鏄渶瑕佽繘琛屽瓧絎︿覆鍜屽悇縐嶆牸寮忕殑杞崲銆?br />4銆乭ttp浼犺緭鍗犵敤鐨勫甫瀹借姣攚ebservice鍗犵敤鐨勫甫瀹藉皯銆?br />5銆亀ebservice鏀寔鐢ㄦ埛鏉冮檺鐨勯獙璇侊紝鑰宧ttp涓嶆敮鎸佺洿鎺ョ殑鐢ㄦ埛鏉冮檺楠岃瘉銆?br />6銆亀ebservice鎺ュ彛涓疄鐜扮殑鏂規硶鍜岃姹傚弬鏁頒竴鐩簡鐒躲?br />

HTTPS鍜孒TTP鐨勫尯鍒細
https鍗忚闇瑕佸埌ca鐢寵璇佷功錛屼竴鑸厤璐硅瘉涔﹀緢灝戯紝闇瑕佷氦璐廣?br />http鏄秴鏂囨湰浼犺緭鍗忚錛屼俊鎭槸鏄庢枃浼犺緭錛宧ttps 鍒欐槸鍏鋒湁瀹夊叏鎬х殑ssl鍔犲瘑浼犺緭鍗忚
http鍜宧ttps浣跨敤鐨勬槸瀹屽叏涓嶅悓鐨勮繛鎺ユ柟寮忕敤鐨勭鍙d篃涓嶄竴鏍?鍓嶈呮槸80,鍚庤呮槸443銆?br />http鐨勮繛鎺ュ緢綆鍗?鏄棤鐘舵佺殑
HTTPS鍗忚鏄敱SSL+HTTP鍗忚鏋勫緩鐨勫彲榪涜鍔犲瘑浼犺緭銆佽韓浠借璇佺殑緗戠粶鍗忚 瑕佹瘮http鍗忚瀹夊叏


SSL鍗忚鍩虹

SSL鍗忚浣嶄簬TCP/IP鍗忚涓庡悇縐嶅簲鐢ㄥ眰鍗忚涔嬮棿錛屾湰韜張鍒嗕負涓ゅ眰錛?/p>

SSL璁板綍鍗忚(SSL Record Protocol)錛氬緩绔嬪湪鍙潬浼犺緭灞傚崗璁?TCP)涔嬩笂錛屼負涓婂眰鍗忚鎻愪緵鏁版嵁灝佽銆佸帇緙┿佸姞瀵嗙瓑鍩烘湰鍔熻兘銆?/p>

SSL鎻℃墜鍗忚(SSL Handshake Procotol)錛氬湪SSL璁板綍鍗忚涔嬩笂錛岀敤浜庡疄闄呮暟鎹紶杈撳墠錛岄氳鍙屾柟榪涜韜喚璁よ瘉銆佸崗鍟嗗姞瀵嗙畻娉曘佷氦鎹㈠姞瀵嗗瘑閽ョ瓑銆?/p>

HTTPS閫氫俊榪囩▼錛?/div>
1.鍦ㄦ湇鍔″櫒绔瓨鍦ㄤ竴涓叕閽ュ強縐侀挜
2.瀹㈡埛绔粠鏈嶅姟鍣ㄥ彇寰楄繖涓叕閽?/div>
3.瀹㈡埛绔駭鐢熶竴涓殢鏈虹殑瀵嗛挜
4.瀹㈡埛绔氳繃鍏挜瀵瑰瘑閽ュ姞瀵嗭紙闈炲縐板姞瀵嗭級
5.瀹㈡埛绔彂閫佸埌鏈嶅姟鍣ㄧ
6.鏈嶅姟鍣ㄧ鎺ュ彈榪欎釜瀵嗛挜騫朵笖浠ュ悗鐨勬湇鍔″櫒绔拰瀹㈡埛绔殑鏁版嵁鍏ㄩ儴閫氳繃榪欎釜瀵嗛挜鍔犲瘑錛堝縐板姞瀵嗭級























abin 2015-05-10 11:27 鍙戣〃璇勮
]]> web.xml涓厤緗甴ttp璁塊棶杞悜httpshttp://m.tkk7.com/stevenjohn/archive/2013/01/06/393883.htmlabinabinSun, 06 Jan 2013 13:28:00 GMThttp://m.tkk7.com/stevenjohn/archive/2013/01/06/393883.htmlhttp://m.tkk7.com/stevenjohn/comments/393883.htmlhttp://m.tkk7.com/stevenjohn/archive/2013/01/06/393883.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/393883.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/393883.html1.tomcat涓嬫墍鏈夊簲鐢ㄩ兘寮哄埗https璁塊棶

鍦╰omcat\conf\web.xml涓殑</welcome-file-list>鍚庨潰鍔犱笂浠ヤ笅閰嶇疆:


  <login-config>
      <!-- Authorization setting for SSL -->
      <auth-method>CLIENT-CERT</auth-method>
      <realm-name>Client Cert Users-only Area</realm-name>
  </login-config>
  <security-constraint>
      <!-- Authorization setting for SSL -->
      <web-resource-collection >
          <web-resource-name >SSL</web-resource-name>
          <url-pattern>/*</url-pattern>
      </web-resource-collection>
      <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
      </user-data-constraint>
  </security-constraint>





2.鍗曚釜搴旂敤寮哄埗https璁塊棶

WEB-INF/web.xml鐨?lt;/welcome-file-list>鍚庨潰鍔犱笂浠ヤ笅閰嶇疆:

  <login-config>
      <!-- Authorization setting for SSL -->
      <auth-method>CLIENT-CERT</auth-method>
      <realm-name>Client Cert Users-only Area</realm-name>
  </login-config>
  <security-constraint>
      <!-- Authorization setting for SSL -->
      <web-resource-collection >
          <web-resource-name >SSL</web-resource-name>
          <url-pattern>/*</url-pattern>
      </web-resource-collection>
      <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
      </user-data-constraint>
  </security-constraint>






abin 2013-01-06 21:28 鍙戣〃璇勮
]]>
HttpClient 瀹炵幇璺寵漿璇鋒眰http://m.tkk7.com/stevenjohn/archive/2012/09/27/388733.htmlabinabinThu, 27 Sep 2012 12:31:00 GMThttp://m.tkk7.com/stevenjohn/archive/2012/09/27/388733.htmlhttp://m.tkk7.com/stevenjohn/comments/388733.htmlhttp://m.tkk7.com/stevenjohn/archive/2012/09/27/388733.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/388733.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/388733.html
嫻嬭瘯UnionPayServlet鐨刪ttpClient嫻嬭瘯綾伙細
  package com.abin.lee.https;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import junit.framework.TestCase;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentProducer;
import org.apache.http.entity.EntityTemplate;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.junit.Test;
public class HttpClientTest extends TestCase {
private static final String Url = "http://localhost:9090/Spa/UnionPayServlet";
@Test
public void testHttpClient() throws Exception {
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(Url);
ContentProducer create = new ContentProducer() {
public void writeTo(OutputStream outstream) throws IOException {
Writer writer = new OutputStreamWriter(outstream, "UTF-8");
writer.write("start");
writer.flush();
writer.close();
}
};
HttpEntity request = new EntityTemplate(create);
post.setEntity(request);
HttpResponse response = client.execute(post);
HttpEntity entity = response.getEntity();
String result = EntityUtils.toString(entity);
System.out.println("the last message is: "+result);
}
}



//琚闂殑servlet錛屼篃灝辨槸涓棿servlet
package org.litsoft.air.servlet;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentProducer;
import org.apache.http.entity.EntityTemplate;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
public class UnionPayServlet extends HttpServlet {
private static final String Url = "http://localhost:9090/Spa/changeServlet";
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("UnionPayServlet");
String result=null;
BufferedReader reader=new BufferedReader(new InputStreamReader(request.getInputStream()));
int num=0;
char[] buffer=new char[1024];
while((num=reader.read(buffer))!=-1){
result=new String(buffer,0,num);
}
System.out.println("from HttpCLient message is: ="+result);
final String transfer=result;
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(Url);
ContentProducer create = new ContentProducer() {
public void writeTo(OutputStream outstream) throws IOException {
Writer writer = new OutputStreamWriter(outstream, "UTF-8");
writer.write(transfer);
writer.flush();
writer.close();
}
};
HttpEntity httpEntity = new EntityTemplate(create);
post.setEntity(httpEntity);
HttpResponse httpResponse = client.execute(post);
HttpEntity entity = httpResponse.getEntity();
String result1 = EntityUtils.toString(entity);
// System.out.println(result1);
ServletOutputStream out=response.getOutputStream();
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(out));
writer.write("this message is received by UnionPayServlet is: "+result1);
writer.flush();
writer.close();
}
@Override
public void destroy() {
super.destroy();
}
}




//鏈緇堣澶勭悊鐨剆ervlet
package org.litsoft.air.servlet;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.litsoft.air.unionpay.CreateJdomOne;
public class ChangeServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 鎺ユ敹Servlet浼犲洖鏉ョ殑淇℃伅
BufferedReader reader = new BufferedReader(new InputStreamReader(
request.getInputStream()));
String show = null;
StringBuffer stb = new StringBuffer();
while ((show = reader.readLine()) != null) {
stb.append(show);
}
System.out.println("from UnionPayServlet message is :" + stb.toString());
reader.close();
ServletOutputStream out=response.getOutputStream();
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(out));
writer.write("this message is received by ChangeServlet is :"+stb.toString());
writer.flush();
writer.close();
}
}


//servlet鐨勯厤緗?br />
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>UnionPayServlet</servlet-name>
<servlet-class>org.litsoft.air.servlet.UnionPayServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UnionPayServlet</servlet-name>
<url-pattern>/UnionPayServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>changeServlet</servlet-name>
<servlet-class>org.litsoft.air.servlet.ChangeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>changeServlet</servlet-name>
<url-pattern>/changeServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>


abin 2012-09-27 20:31 鍙戣〃璇勮
]]>
HttpsUrlConnection https鍙屽悜楠岃瘉http://m.tkk7.com/stevenjohn/archive/2012/09/27/388647.htmlabinabinWed, 26 Sep 2012 16:16:00 GMThttp://m.tkk7.com/stevenjohn/archive/2012/09/27/388647.htmlhttp://m.tkk7.com/stevenjohn/comments/388647.htmlhttp://m.tkk7.com/stevenjohn/archive/2012/09/27/388647.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/388647.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/388647.htmlhttp://m.tkk7.com/stevenjohn/archive/2012/08/22/385989.html 
搴旇姝e父鏉ヨ錛屾寜鐓ц繖涓暀紼嬪仛鐨勮瘽鏄病鏈変換浣曢棶棰樼殑錛屼絾鏄篃鏈変簺鏈嬪弸鍑鴻繃闂錛屼富瑕侀棶棰樻槸鍦紝鎶婅瘉涔﹀鍏ュ埌嫻忚鍣ㄩ噷闈㈢殑鏃跺欏嚭鐨勶紝娉ㄦ剰榪欓噷銆?br />
鎴戣繖閲岄潰鐨勬垜閮藉仛榪囦笁鍥涙浜嗭紝鍩烘湰娌″暐闂銆備絾涔熶笉鎺掗櫎涓嶄細涓嶅嚭闂銆?br />
鐢變簬緗戜笂鍏充簬httpCilent鏉ユ祴璇曡皟鐢℉TTPS鐨勪緥瀛愯緝灝戯紝緇忚繃鍦ㄥ害濞樺拰璋風埞鐨勬煡鎵撅紝鎬葷畻鏄篃鎵懼埌浜嗕竴綃囨枃绔狅紝鍙傝冧互鍚庯紝鍋氬嚭鏉ヤ竴涓祴璇曠被錛屽湪鎴戞満鍣ㄤ笂闈㈡槸鑳藉璺戦氱殑銆傚叿浣撳湴鍧錛?a href="http://m.tkk7.com/stevenjohn/archive/2012/09/27/388646.html">http://m.tkk7.com/stevenjohn/archive/2012/09/27/388646.html 



//棣栧厛璇翠竴涓嬶紝榪欎釜鏄垜闅忎究鍐欑殑涓涓彂甯冨埌tomcat鐨刪ttpsUrlConnection鐨凷ervlet鏈嶅姟錛屼富瑕佹槸鐢ㄦ潵嫻嬭瘯涓涓媓ttps鍙屽悜楠岃瘉鐨勶紝鐜板湪緗戜笂濂藉鐨勬枃绔犻兘鏄痟ttps鍗曞悜楠岃瘉鐨凧ava浠g爜錛屾垜鍦ㄧ綉涓婄湅榪囧ソ澶氾紝浣嗘槸濂藉閮芥槸鍗婃垚鍝侊紝鐒跺悗鎬葷粨浜嗕竴涓嬶紝鍦ㄨ嚜宸辯殑鏈哄櫒涓婇潰鏄畬鍏ㄨ兘澶熻窇閫氱殑錛屽湪榪欓噷鍋氫釜絎旇錛屼互鍚庣敤寰楃潃鐨勬椂鍊欐潵鎷匡細
package com.abin.lee.https;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Enumeration;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
public class ReceiveHttpsUrlConnectionRequest extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("receive https request");
                /**榪欎釜涓昏鏄帴鏀訛紝鐢卞鏂圭粰浠OST褰㈠紡鍙戣繃鏉ョ殑鍐呭錛岃繖縐嶅唴瀹逛笉鏄互key-value鐨勫艦寮忓彂鐨勶紝鑰屾槸鐩存帴閫氳繃Java鐨?br />                *string content="test https double auth";
                *BufferedWriter writer  = new BufferedWriter();
                *writer.writer(content.getBytes());
                *閫氳繃榪欑褰㈠紡鍙戣繃鏉ョ殑鍐呭鐨勬帴鏀訛紝鐢變簬鐩存帴鏀懼埌request閲岄潰鍙戦佽繃鏉ョ殑錛屾墍浠ョ殑浠巖equest閲岄潰鏉ユ帴鏀躲?br />                *涔嬪墠鍋氶摱鑱旂殑鎵嬫満鏀粯鐨勬椂鍊欎篃鏄繖涔堜紶閫掑弬鏁扮殑銆?br />                */
BufferedReader reader=new BufferedReader(new InputStreamReader(request.getInputStream()));
String line=null;
StringBuffer stb=new StringBuffer();
                //寰幆鐨勪竴琛屼竴琛岀殑璇誨彇鍐呭
     while((line=reader.readLine())!=null){
stb.append(line);
}
                //鎵撳嵃璇誨彇鍒扮殑鍐呭銆?/div>
System.out.println("stb="+stb.toString());
                //緇欒皟鐢ㄨ呰繑鍥炲唴瀹?/div>
PrintWriter write=response.getWriter();
write.write("receive HttpsUrlConnection success");
write.flush();
write.close();
}
}




//榪欎釜鏄湪web宸ョ▼閲岄潰鐨剋eb.xml閲岄潰閰嶇疆鐨勫彂甯冪殑servlet鏈嶅姟
//web.xml
<servlet>
<servlet-name>httpsUrlConnectionRequest</servlet-name>
<servlet-class>com.abin.lee.https.ReceiveHttpsUrlConnectionRequest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>httpsUrlConnectionRequest</servlet-name>
<url-pattern>/httpsUrlConnectionRequest</url-pattern>
</servlet-mapping>

//HttpsUrlConnection嫻嬭瘯綾?br />
package com.abin.lee.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.URL;
import java.util.Date;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
import junit.framework.TestCase;
import org.junit.Before;
import org.junit.Test;
public class HttpsUrlConnectionClient extends TestCase {
// 瀹㈡埛绔瘑閽ュ簱
private String sslKeyStorePath;
private String sslKeyStorePassword;
private String sslKeyStoreType;
// 瀹㈡埛绔俊浠葷殑璇佷功
private String sslTrustStore;
private String sslTrustStorePassword;
        //涓婇潰鍙戝竷鐨剆ervlet璇鋒眰鍦板潃
private String httpsUrlConnectionUrl = "https://localhost:8443/global/httpsUrlConnectionRequest";
@Before
public void setUp() {
                //榪欐槸瀵嗛挜搴?br />     sslKeyStorePath = "D:\\home\\tomcat.keystore";
sslKeyStorePassword = "stevenjohn";
sslKeyStoreType = "JKS"; // 瀵嗛挜搴撶被鍨嬶紝鏈塉KS PKCS12絳?br />                //淇′換搴擄紝榪欓噷闇瑕佹湇鍔$鏉ユ柊浜哄鎴風鎵嶈兘璋冪敤錛屽洜涓鴻繖涓垜鏄厤緗殑https鍙屽悜楠岃瘉錛屼笉浣嗘槸瑕佸鎴風淇′換鏈嶅姟绔紝鏈嶅姟绔篃瑕佷俊浠誨鎴風銆?/div>
sslTrustStore = "D:\\home\\tomcat.keystore";
sslTrustStorePassword = "stevenjohn";
System.setProperty("javax.net.ssl.keyStore", sslKeyStorePath);
System.setProperty("javax.net.ssl.keyStorePassword",
sslKeyStorePassword);
System.setProperty("javax.net.ssl.keyStoreType", sslKeyStoreType);
// 璁劇疆緋葷粺鍙傛暟
System.setProperty("javax.net.ssl.trustStore", sslTrustStore);
System.setProperty("javax.net.ssl.trustStorePassword",
sslTrustStorePassword);
System.setProperty("java.protocol.handler.pkgs", "sun.net.www.protocol");
}
@Test
public void testHttpsUrlConnectionClient() {
try {
URL url = new URL(httpsUrlConnectionUrl);
                        //瀵逛簬涓繪満鍚嶇殑楠岃瘉錛屽洜涓洪厤緗湇鍔″櫒绔殑tomcat.keystore鐨勮瘉涔︾殑鏃跺欙紝鏄渶瑕佸~鍐欑敤鎴峰悕鐨勶紝涓鑸敤鎴峰悕鏉ヨ鏄湰鍦癷p鍦板潃錛屾垨鑰呮湰鍦伴厤緗殑鍩熷悕
     HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(hv);
                        //緙栧啓HttpsURLConnection 鐨勮姹傚璞★紝榪欓噷闇瑕佹敞鎰廐ttpsURLConnection 姣旀垜浠鉤鏃剁敤鐨凥ttpURLConnection瀵逛簡涓涓猻錛屽洜涓篽ttps鏄篃鏄伒寰猦ttp鍗忚鐨勶紝騫朵笖鏄噰鐢╯sl榪欎釜瀹夊叏濂楁帴瀛楁潵浼犺緭淇℃伅鐨勶紝浣嗘槸涔熸湁鍙兘閬埌榛戝鐨勬敾鍑? 
HttpsURLConnection connection = (HttpsURLConnection) url
.openConnection();
connection.setRequestProperty("Content-Type", "text/xml");
connection.setDoOutput(true);
connection.setDoInput(true);
                        //璁劇疆璇鋒眰鏂瑰紡涓簆ost,榪欓噷闈㈠綋鐒朵篃鍙互鐢╣et錛屼絾鏄垜榪欓噷蹇呴』鐢╬ost
     connection.setRequestMethod("POST");
connection.setUseCaches(false);
connection.setReadTimeout(30000);
String user="abin";
String pwd="abing";
String request="user="+user+"&pwd="+pwd;
OutputStream out = connection.getOutputStream();
                        //涓嬮潰鐨勮繖鍙ヨ瘽鏄粰servlet鍙戦佽姹傚唴瀹?/div>
out.write(request.getBytes());
out.flush();
out.close();
//鎺ユ敹璇鋒眰鐨勮繑鍥炲?/div>
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuffer stb = new StringBuffer();
String line;
while ((line = reader.readLine()) != null) {
stb.append(line);
}
Integer statusCode = connection.getResponseCode();
System.out.println("榪斿洖鐘舵佺爜:" + statusCode);
reader.close();
connection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}




//鍙戝竷濂戒簡鏈嶅姟錛屼綘闇瑕佸湪tomcat閲岄潰閰嶇疆濂戒簡https鏈嶅姟鐨勭鍙f墠鑳戒嬌鐢ㄣ?br />//tomcat閰嶇疆鏂囦歡錛?br />
 <Connector port="6060" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
        
        /**鍏充簬https绔彛鐨勮鏄庯紝閾惰仈涓鑸敤鐨勯兘鏄?--9  443,榪欑綾誨瀷鐨勭鍙o紝絎竴浣嶆槸0--9涓殑浠繪剰涓浣嶏紝鐒跺悗鍚庨潰涓変綅鏄?43錛岃岄氳繃鎴戠殑嫻嬭瘯錛屽彂瑙夐殢渚夸竴涓鍙e彿閮藉彲           *   浠ョ殑錛屽彧瑕佷笉鍜屼綘鏈哄櫒鐨勫叾浠栫鍙e啿紿佸氨琛岋紝911,95553榪欎簺绔彛閮芥槸鍙互婊淬?br />          *clientAuth="true"   榪欓噷璁劇疆涓篺alse鏄痟ttps鍗曞悜璁よ瘉錛岃緗負true鍒欐槸https鍙屽悜璁よ瘉
        */
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
  SSLEnabled="true" maxThreads="150" scheme="https"
  secure="true" clientAuth="true" sslProtocol="TLS"
  keystoreFile="D:\\home\\tomcat.keystore" keystorePass="stevenjohn"  //瀵嗛挜搴?/div>
  truststoreFile="D:\\home\\tomcat.keystore" truststorePass="stevenjohn" />//淇′換搴?/div>


abin 2012-09-27 00:16 鍙戣〃璇勮
]]>HttpClient https鍙屽悜楠岃瘉http://m.tkk7.com/stevenjohn/archive/2012/09/27/388646.htmlabinabinWed, 26 Sep 2012 16:11:00 GMThttp://m.tkk7.com/stevenjohn/archive/2012/09/27/388646.htmlhttp://m.tkk7.com/stevenjohn/comments/388646.htmlhttp://m.tkk7.com/stevenjohn/archive/2012/09/27/388646.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/388646.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/388646.html
package com.abin.lee.https;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
public class ReceiveHttpClientRequest extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("receive https request");
Map map=request.getParameterMap();
String user=(((Object[])map.get("user"))[0]).toString();
System.out.println("user="+user);
String pwd=(((Object[])map.get("pwd"))[0]).toString();
System.out.println("pwd="+pwd);
//緇欒皟鐢ㄨ呰繑鍥炲?/div>
PrintWriter write=response.getWriter();
write.write("receive HttpClient success");
write.flush();
write.close();
}
}





//web.xml
<servlet>
<servlet-name>httpsClientRequest</servlet-name>
<servlet-class>com.abin.lee.https.ReceiveHttpClientRequest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>httpsClientRequest</servlet-name>
<url-pattern>/httpsClientRequest</url-pattern>
</servlet-mapping>




//HttpClient嫻嬭瘯綾?br />
package com.abin.lee.test;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.security.KeyStore;
import java.util.ArrayList;
import java.util.List;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import junit.framework.TestCase;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
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.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.junit.Before;
import org.junit.Test;
public class HttpsClient extends TestCase {
private String httpUrl = "https://localhost:8443/global/httpsClientRequest";
// 瀹㈡埛绔瘑閽ュ簱
private String sslKeyStorePath;
private String sslKeyStorePassword;
private String sslKeyStoreType;
// 瀹㈡埛绔俊浠葷殑璇佷功
private String sslTrustStore;
private String sslTrustStorePassword;
@Before
public void setUp() {
sslKeyStorePath = "D:\\home\\tomcat.keystore";
sslKeyStorePassword = "stevenjohn";
sslKeyStoreType = "JKS"; // 瀵嗛挜搴撶被鍨嬶紝鏈塉KS PKCS12絳?/div>
sslTrustStore = "D:\\home\\tomcat.keystore";
sslTrustStorePassword = "stevenjohn";
System.setProperty("javax.net.ssl.keyStore", sslKeyStorePath);
System.setProperty("javax.net.ssl.keyStorePassword",
sslKeyStorePassword);
System.setProperty("javax.net.ssl.keyStoreType", sslKeyStoreType);
// 璁劇疆緋葷粺鍙傛暟
System.setProperty("javax.net.ssl.trustStore", sslTrustStore);
System.setProperty("javax.net.ssl.trustStorePassword",
sslTrustStorePassword);
}
@Test
public void testHttpsClient() {
SSLContext sslContext = null;
try {
KeyStore kstore = KeyStore.getInstance("jks");
kstore.load(new FileInputStream(sslKeyStorePath),
sslKeyStorePassword.toCharArray());
KeyManagerFactory keyFactory = KeyManagerFactory
.getInstance("sunx509");
keyFactory.init(kstore, sslKeyStorePassword.toCharArray());
KeyStore tstore = KeyStore.getInstance("jks");
tstore.load(new FileInputStream(sslTrustStore),
sslTrustStorePassword.toCharArray());
TrustManager[] tm;
TrustManagerFactory tmf = TrustManagerFactory
.getInstance("sunx509");
tmf.init(tstore);
tm = tmf.getTrustManagers();
sslContext = SSLContext.getInstance("SSL");
sslContext.init(keyFactory.getKeyManagers(), tm, null);
} catch (Exception e) {
e.printStackTrace();
}
try {
HttpClient httpClient = new DefaultHttpClient();
SSLSocketFactory socketFactory = new SSLSocketFactory(sslContext);
Scheme sch = new Scheme("https", 8443, socketFactory);
httpClient.getConnectionManager().getSchemeRegistry().register(sch);
HttpPost httpPost = new HttpPost(httpUrl);
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("user", "abin"));
nvps.add(new BasicNameValuePair("pwd", "abing"));
httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
HttpResponse httpResponse = httpClient.execute(httpPost);
String spt = System.getProperty("line.separator"); 
BufferedReader buffer = new BufferedReader(new InputStreamReader(
httpResponse.getEntity().getContent()));
StringBuffer stb=new StringBuffer();
String line=null;
while((line=buffer.readLine())!=null){
stb.append(line);
}
buffer.close();
String result=stb.toString();
System.out.println("result="+result);
} catch (Exception e) {
e.printStackTrace();
}
}
}







//tomcat閰嶇疆鏂囦歡錛氾紙鍓嶆彁鏄痟ttps鍙屽悜楠岃瘉璇佷功鐢熸垚鐨勬病鏈変竴鐐歸棶棰橈級

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
  SSLEnabled="true" maxThreads="150" scheme="https"
  secure="true" clientAuth="true" sslProtocol="TLS"
  keystoreFile="D:\\home\\tomcat.keystore" keystorePass="stevenjohn"
  truststoreFile="D:\\home\\tomcat.keystore" truststorePass="stevenjohn" />





abin 2012-09-27 00:11 鍙戣〃璇勮
]]>Tomcat閰嶇疆HTTPS鏂瑰紡(鍗曞悜)http://m.tkk7.com/stevenjohn/archive/2012/09/26/388600.htmlabinabinWed, 26 Sep 2012 08:34:00 GMThttp://m.tkk7.com/stevenjohn/archive/2012/09/26/388600.htmlhttp://m.tkk7.com/stevenjohn/comments/388600.htmlhttp://m.tkk7.com/stevenjohn/archive/2012/09/26/388600.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/388600.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/388600.html

綆瑕佽褰曚富瑕佹楠ゅ蹇?/p>

1銆佽繘鍏ュ埌jdk涓嬬殑bin鐩綍

2銆佽緭鍏ュ涓嬫寚浠?/strong>

keytool -v -genkey -alias tomcat -keyalg RSA -keystore d:/tomcat.keystore  -validity 36500

闄勶細

d:/tomcat.keystore鏄皢鐢熸垚鐨則omcat.keystore鏀懼埌d鐩樻牴鐩綍涓嬨?/p>

"-validity 36500鍚箟鏄瘉涔︽湁鏁堟湡錛?/span>36500琛ㄧず100騫達紝榛樿鍊兼槸90澶?/span>

娉ㄦ剰鑻ヨ鏀懼埌c鐩橈紝鍦╳in7緋葷粺涓嬶紝闇瑕佷互綆$悊鍛樿韓浠借繘鍏ュ埌鍛戒護琛屼腑榪涜鎿嶄綔錛屽惁鍒欐槸鏃犳硶鍒涘緩tomcat.keystore鐨勩傛湰渚嬫斁鍒癲鐩樹笅銆?
濡備綍浠ョ鐞嗗憳韜喚榪涘叆鍒板懡浠よ涓嬪憿錛熷紑濮?>鎼滅儲妗嗕腑杈撳叆cmd->絳夊緟錛堟敞鎰忎笉鍥炶濺錛?>鍑虹幇cmd.exe->鍙抽敭“浠ョ鐞嗗憳韜喚榪愯”鍗沖彲銆?

3銆佽緭鍏eystore瀵嗙爜

瀵嗙爜浠繪剰錛屾澶勪互123456涓轟緥錛岃璁頒綇榪欎釜瀵嗙爜錛屼箣鍚庡湪榪涜server.xml閰嶇疆鏃墮渶瑕佷嬌鐢ㄣ?

4銆佽緭鍏ュ悕瀛椼佺粍緇囧崟浣嶃佺粍緇囥佸競銆佺渷銆佸浗瀹剁瓑淇℃伅

娉ㄦ剰浜嬮」錛?/div>
A銆丒nter keystore password錛氭澶勯渶瑕佽緭鍏ュぇ浜?涓瓧絎︾殑瀛楃涓?/div>
B銆?#8220;What is your first and last name?”榪欐槸蹇呭~欏癸紝騫朵笖蹇呴』鏄疶OMCAT閮ㄧ講涓繪満鐨勫煙鍚嶆垨鑰匢P[濡傦細gbcom.com 鎴栬?nbsp;10.1.25.251]錛屽氨鏄綘灝嗘潵瑕佸湪嫻忚鍣ㄤ腑杈撳叆鐨勮闂湴鍧
C銆?#8220;What is the name of your organizational unit?”銆?#8220;What is the name of your organization?”銆?#8220;What is the name of your City or Locality?”銆?#8220;What is the name of your State or Province?”銆?#8220;What is the two-letter country code for this unit?”鍙互鎸夌収闇瑕佸~鍐欎篃鍙互涓嶅~鍐欑洿鎺ュ洖杞︼紝鍦ㄧ郴緇熻闂?#8220;correct?”鏃訛紝瀵圭収杈撳叆淇℃伅錛屽鏋滅鍚堣姹傚垯浣跨敤閿洏杈撳叆瀛楁瘝“y”錛屽惁鍒欒緭鍏?#8220;n”閲嶆柊濉啓涓婇潰鐨勪俊鎭?/div>
D銆丒nter key password for <tomcat>錛岃繖欏硅緝涓洪噸瑕侊紝浼氬湪tomcat閰嶇疆鏂囦歡涓嬌鐢紝寤鴻杈撳叆涓巏eystore鐨勫瘑鐮佷竴鑷達紝璁劇疆鍏跺畠瀵嗙爜涔熷彲浠?/div>
l  瀹屾垚涓婅堪杈撳叆鍚庯紝鐩存帴鍥炶濺鍒欏湪浣犲湪絎簩姝ヤ腑瀹氫箟鐨勪綅緗壘鍒扮敓鎴愮殑鏂囦歡

5銆佽緭鍏ヤ箣鍚庝細鍑虹幇紜鐨勬彁紺?

姝ゆ椂杈撳叆y錛屽茍鍥炶濺銆傛鏃跺垱寤哄畬鎴恔eystore銆?
榪涘叆鍒癉鐩樻牴鐩綍涓嬪彲浠ョ湅鍒板凡緇忕敓鎴愮殑tomcat.xml

6銆佽繘鍏omcat鏂囦歡澶?
鎵懼埌conf鐩綍涓嬬殑sever.xml騫惰繘琛岀紪杈?

7銆佺紪杈?
  <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
     maxThreads="150" scheme="https" secure="true"
     clientAuth="false" keystoreFile="D:/AppServer/Tomcat/apache-tomcat-6.0.32/conf/tomcat.keystore"
     keystorePass="deleiguo" sslProtocol="TLS" />
娉細
鏂規涓殑keystore鐨勫瘑鐮侊紝灝辨槸鍒氭墠鎴戜滑璁劇疆鐨?#8220;123456”.

緙栬緫瀹屾垚鍚庡叧闂茍淇濆瓨sever.xml

8銆乀omcat鍚姩鎴愬姛鍚庯紝浣跨敤https://127.0.0.1:8443 璁塊棶欏甸潰

欏甸潰鎴愬姛鎵撳紑鍗硉omcat涓嬬殑https閰嶇疆鎴愬姛銆?

 

9銆佸簲鐢ㄧ▼搴廐TTP鑷姩璺寵漿鍒癏TTPS

鍦ㄥ簲鐢ㄧ▼搴忎腑web.xml涓姞鍏ワ細

<security-constraint> 
       <web-resource-collection > 
              <web-resource-name >SSL</web-resource-name> 
              <url-pattern>/*</url-pattern> 
       </web-resource-collection>
                             
       <user-data-constraint> 
              <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
       </user-data-constraint> 
</security-constraint>
 
10銆佺敓鎴愬畨鍏ㄨ瘉涔︽枃浠?/strong>
keytool -export -alias tomcat -file D:/file.cer -keystore d:/tomcat.keystore -validity 36500
鐒跺悗杈撳叆d:/tomcat.keystore涓殑keystore瀵嗙爜
 
-file D:/file.cer 鍗充負鐢熸垚鐨刢er鏂囦歡錛屽彲鐩存帴鐐瑰嚮瀹夎
 
11銆佹敞鎰忎簨欏癸細
錛?錛?nbsp;   鐢熸垚璇佷功鐨勬椂闂達紝濡傛灉IE瀹㈡埛绔墍鍦ㄦ満鍣ㄧ殑鏃墮棿鏃╀簬璇佷功鐢熸晥鏃墮棿錛屾垨鑰呮櫄浜庢湁鏁堟椂闂達紝IE浼氭彁紺?#8220;璇ュ畨鍏ㄨ瘉涔﹀凡鍒版湡鎴栬繕鏈敓鏁?#8221;
錛?錛?nbsp;   濡傛灉IE鎻愮ず“瀹夊叏璇佷功涓婄殑鍚嶇О鏃犳晥鎴栬呬笌绔欑偣鍚嶇О涓嶅尮閰?#8221;錛屽垯鏄敱鐢熸垚璇佷功鏃跺~鍐欑殑鏈嶅姟鍣ㄦ墍鍦ㄤ富鏈虹殑鍩熷悕“鎮ㄧ殑鍚嶅瓧涓庡姘忔槸浠涔堬紵”/“What is your first and last name?”涓嶆紜紩璧風殑
 
12銆侀仐鐣欓棶棰橈細
錛?錛夊鏋淎C涓繪満涓嶈兘閫氳繃鍩熷悕鏌ユ壘錛屽繀欏諱嬌鐢↖P錛屼絾鏄繖涓狪P鍙湁鍦ㄩ厤緗悗鎵嶈兘紜畾錛岃繖鏍瘋瘉涔﹀氨蹇呴』鍦ˋC紜畾IP鍦板潃鍚庢墠鑳界敓鎴?/div>
錛?錛夎瘉涔︽枃浠跺彧鑳界粦瀹氫竴涓狪P鍦板潃錛屽亣璁炬湁10.1.25.250 鍜?nbsp;192.168.1.250 涓や釜IP鍦板潃錛屽湪璇佷功鐢熸垚鏂囦歡鏃訛紝濡備嬌鐢ㄤ簡10.1.25.250錛岄氳繃IE灝卞彧鑳戒嬌鐢?0.1.25.250 鏉ヨ闂瓵C-WEB錛?92.168.1.250鏄棤娉曡闂瓵C-WEB鐨勩?/div>


abin 2012-09-26 16:34 鍙戣〃璇勮
]]>Java Https鍗曞悜錛屽弻鍚戦獙璇?/title><link>http://m.tkk7.com/stevenjohn/archive/2012/09/23/388389.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Sun, 23 Sep 2012 14:31:00 GMT</pubDate><guid>http://m.tkk7.com/stevenjohn/archive/2012/09/23/388389.html</guid><wfw:comment>http://m.tkk7.com/stevenjohn/comments/388389.html</wfw:comment><comments>http://m.tkk7.com/stevenjohn/archive/2012/09/23/388389.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/stevenjohn/comments/commentRss/388389.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/stevenjohn/services/trackbacks/388389.html</trackback:ping><description><![CDATA[<p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff; ">https涓鑸潵璇存湁鍗曢」SSL鍜屽弻鍚慡SL榪炴帴涔嬪垎銆?/p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff; "> </p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #ffffff; ">鍗曢」SSL榪炴帴錛屼篃灝辨槸鍙槸瀹㈡埛绔獙璇佹湇鍔″櫒璇佷功銆倀omcat涓璫lientAuth="false"鐨勬椂鍊欙紝HTTPS鍗曞悜楠岃瘉濡備笅錛?br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">import</span> java.io.BufferedReader;<br /><span style="color: #0000FF; ">import</span> java.io.InputStreamReader;<br /><span style="color: #0000FF; ">import</span> java.io.OutputStream;<br /><span style="color: #0000FF; ">import</span> java.net.URL;<br /><span style="color: #0000FF; ">import</span> java.util.Date;<br /><span style="color: #0000FF; ">import</span> javax.net.ssl.HostnameVerifier;<br /><span style="color: #0000FF; ">import</span> javax.net.ssl.HttpsURLConnection;<br /><span style="color: #0000FF; ">import</span> javax.net.ssl.SSLSession;<br /><span style="color: #0000FF; ">import</span> org.apache.commons.logging.Log;<br /><span style="color: #0000FF; ">import</span> org.apache.commons.logging.LogFactory;<br /><br /><span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> ClientSendData {<br />    <span style="color: #0000FF; ">static</span> Log log = LogFactory.getLog(ClientSendData.<span style="color: #0000FF; ">class</span>);<br />    <span style="color: #008000; ">//</span><span style="color: #008000; "> 瀹㈡埛绔俊浠葷殑璇佷功</span><span style="color: #008000; "><br /></span>    <span style="color: #0000FF; ">private</span> String sslTrustStore;<br />    <span style="color: #0000FF; ">private</span> String sslTrustStorePassword;<br />    <span style="color: #0000FF; ">private</span> String Url;<br /><br />    <span style="color: #008000; ">//</span><span style="color: #008000; ">鍒濆鍖栨暟鎹?/span><span style="color: #008000; "><br /></span>    <span style="color: #0000FF; ">public</span> ClientSendData() {<br />        sslTrustStore = "D:/ssl/clientTrust.jks";<br />        sslTrustStorePassword = "123456";<br />        Url = "https://test.yihaodian.com:8443/ims/feedbackToPingAn_getData.action";<br />    }<br /><br />    <span style="color: #0000FF; ">public</span> String sendData(String data) {<br />        String receivedData = <span style="color: #0000FF; ">null</span>;<br />        <span style="color: #0000FF; ">try</span> {<br />            <span style="color: #008000; ">//</span><span style="color: #008000; ">璁劇疆緋葷粺鍙傛暟</span><span style="color: #008000; "><br /></span>            System.setProperty("javax.net.ssl.trustStore", sslTrustStore);<br />            System.setProperty("javax.net.ssl.trustStorePassword",<br />                    sslTrustStorePassword);<br />            receivedData = send(Url, data);<br />        } <span style="color: #0000FF; ">catch</span> (Exception e) {<br />            e.printStackTrace();<br />        }<br />        <span style="color: #0000FF; ">return</span> receivedData;<br />    }<br /><br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> String send(String sendurl, String sendData)<br />            <span style="color: #0000FF; ">throws</span> Exception {<br />        URL url = <span style="color: #0000FF; ">new</span> URL(sendurl);<br />        HostnameVerifier hv = <span style="color: #0000FF; ">new</span> HostnameVerifier() {<br />            <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">boolean</span> verify(String urlHostName, SSLSession session) {<br />                <span style="color: #0000FF; ">return</span> <span style="color: #0000FF; ">true</span>;<br />            }<br />        };<br />        System.setProperty("java.protocol.handler.pkgs","sun.net.www.protocol");<br />        HttpsURLConnection.setDefaultHostnameVerifier(hv);<br />        Date current = <span style="color: #0000FF; ">new</span> Date(System.currentTimeMillis());<br />        log.info("begint to open connection at " + current);<br />        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();<br />        Date end = <span style="color: #0000FF; ">new</span> Date(System.currentTimeMillis());<br />        log.info("open connection ok at " + end + ",cost:"+ (end.getTime() - current.getTime()));<br />        connection.setRequestProperty("Content-Type", "text/xml");<br />        connection.setDoOutput(<span style="color: #0000FF; ">true</span>);<br />        connection.setDoInput(<span style="color: #0000FF; ">true</span>);<br />        connection.setRequestMethod("POST");<br />        connection.setUseCaches(<span style="color: #0000FF; ">false</span>);<br />        connection.setReadTimeout(30000);<br />        <span style="color: #0000FF; ">byte</span> data[] = sendData.getBytes();<br />        current = <span style="color: #0000FF; ">new</span> Date(System.currentTimeMillis());<br />        log.info("[SSLIX]notifyEai,begint to write data at " + current);<br />        OutputStream out = connection.getOutputStream();<br />        out.write(data);<br />        end = <span style="color: #0000FF; ">new</span> Date(System.currentTimeMillis());<br />        log.info("write data ok at " + end + ",cost:"<br />                + (end.getTime() - current.getTime()));<br />        StringBuffer receivedData = <span style="color: #0000FF; ">new</span> StringBuffer();<br />        current = <span style="color: #0000FF; ">new</span> Date(System.currentTimeMillis());<br />        log.info("begint to read data at " + current);<br />        InputStreamReader inReader = <span style="color: #0000FF; ">new</span> InputStreamReader(connection<br />                .getInputStream(), "UTF-8");<br />        BufferedReader aReader = <span style="color: #0000FF; ">new</span> BufferedReader(inReader);<br />        String aLine;<br />        <span style="color: #0000FF; ">while</span> ((aLine = aReader.readLine()) != <span style="color: #0000FF; ">null</span>) {<br />            receivedData.append(aLine);<br />        }<br />        end = <span style="color: #0000FF; ">new</span> Date(System.currentTimeMillis());<br />        log.info("read data ok at " + end + ",cost:"<br />                + (end.getTime() - current.getTime()));<br /><br />        log.info("寮濮嬭繑鍥炵姸鎬佺爜");<br />        Integer statusCode = connection.getResponseCode();<br />        log.info("榪斿洖鐘舵佺爜:" + statusCode);<br />        aReader.close();<br />        connection.disconnect();<br />        <span style="color: #0000FF; ">return</span> receivedData.toString();<br />    }<br /><br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">void</span> main(String[] args) {<br />        ClientSendData t = <span style="color: #0000FF; ">new</span> ClientSendData();<br />        t.sendData("嫻嬭瘯SSL鍗曢」榪炴帴錛屽悜鏈嶅姟绔彂閫佹暟鎹?");<br />    }<br />}</div><br /><p style="margin: 0px; padding: 0px; ">鍗曢」璁よ瘉鏃訛紝鍙渶瑕佽緗鎴風淇′換鐨勮瘉涔﹀簱灝辮銆備絾鏄綋鏄弻鍚戣璇佹椂錛岃繕闇瑕佽緗鎴風瀵嗛挜搴撳瘑鐮併?/p><p style="margin: 0px; padding: 0px; ">HTTPS鍙屽悜楠岃瘉浠g爜濡備笅錛?br /></p><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> ClientSendData {<br />    <span style="color: #0000FF; ">static</span> Log log = LogFactory.getLog(EaiChannel.<span style="color: #0000FF; ">class</span>);<br />    <span style="color: #008000; ">//</span><span style="color: #008000; ">瀹㈡埛绔瘑閽ュ簱</span><span style="color: #008000; "><br /></span>    <span style="color: #0000FF; ">private</span> String sslKeyStorePath;<br />    <span style="color: #0000FF; ">private</span> String sslKeyStorePassword;<br />    <span style="color: #0000FF; ">private</span> String sslKeyStoreType;<br />    <span style="color: #008000; ">//</span><span style="color: #008000; "> 瀹㈡埛绔俊浠葷殑璇佷功</span><span style="color: #008000; "><br /></span>    <span style="color: #0000FF; ">private</span> String sslTrustStore;<br />    <span style="color: #0000FF; ">private</span> String sslTrustStorePassword;<br />    <span style="color: #0000FF; ">private</span> String eaiUrl;<br /><br />    <span style="color: #008000; ">//</span><span style="color: #008000; ">鍒濆鍖栨暟鎹?/span><span style="color: #008000; "><br /></span>    <span style="color: #0000FF; ">public</span> ClientSendData() {<br />        sslKeyStorePath = "D:/ssl/clientKeys.jks";<br />        sslKeyStorePassword     = "123456";<br />        sslKeyStoreType = "JKS"; <span style="color: #008000; ">//</span><span style="color: #008000; ">瀵嗛挜搴撶被鍨嬶紝鏈塉KS PKCS12絳?/span><span style="color: #008000; "><br /></span>        sslTrustStore = "D:/ssl/clientTrust.jks";<br />        sslTrustStorePassword = "123456";<br />        eaiUrl = "https://test.yihaodian.com:8443/ims/feedbackToPingAn_getData.action";<br />    }<br /><br />    <span style="color: #0000FF; ">public</span> String sendData(String data) {<br />        String receivedData = <span style="color: #0000FF; ">null</span>;<br />        <span style="color: #0000FF; ">try</span> {<br />            <br />             System.setProperty("javax.net.ssl.keyStore", sslKeyStorePath);<br />             System.setProperty("javax.net.ssl.keyStorePassword",sslKeyStorePassword);<br />             System.setProperty("javax.net.ssl.keyStoreType", sslKeyStoreType);<br />            <span style="color: #008000; ">//</span><span style="color: #008000; ">璁劇疆緋葷粺鍙傛暟</span><span style="color: #008000; "><br /></span>            System.setProperty("javax.net.ssl.trustStore", sslTrustStore);<br />            System.setProperty("javax.net.ssl.trustStorePassword",<br />                    sslTrustStorePassword);<br />            receivedData = send(eaiUrl, data);<br />        } <span style="color: #0000FF; ">catch</span> (Exception e) {<br />            e.printStackTrace();<br />        }<br />        <span style="color: #0000FF; ">return</span> receivedData;<br />    }<br /><br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> String send(String sendurl, String sendData)<br />            <span style="color: #0000FF; ">throws</span> Exception {<br />        <span style="color: #008000; ">//</span><span style="color: #008000; ">鍜屼笂闈竴鏍?/span><span style="color: #008000; "><br /></span>    }<br /><br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">void</span> main(String[] args) {<br />        ClientSendData t = <span style="color: #0000FF; ">new</span> ClientSendData();<br />        t.sendData("嫻嬭瘯SSL鍙岄」榪炴帴錛屽悜鏈嶅姟绔彂閫佹暟鎹?");<br />    }<br />}</div><br /><br /><p style="margin: 0px; padding: 0px; ">涓嬮潰鏉ヨ璇村彲鑳戒細閬囧埌鐨勫紓甯革細</p><p style="margin: 0px; padding: 0px; ">1. java.security.NoSuchAlgorithmException</p><p style="margin: 0px; padding: 0px; "> </p><p style="margin: 0px; padding: 0px; ">涓鑸潵璇存槸瀵嗛挜搴撶被鍨嬩笉瀵癸紝濡備笂闈㈢殑sslKeyStoreType = "JKS" 鍗村啓鎴怭KCS12銆?/p><p style="margin: 0px; padding: 0px; "> </p><p style="margin: 0px; padding: 0px; ">涔熸湁鍙兘鏄瘉涔︾殑闂銆?/p><p style="margin: 0px; padding: 0px; "> </p><p style="margin: 0px; padding: 0px; ">2. java.net.UnknownHostException</p><p style="margin: 0px; padding: 0px; "> </p><p style="margin: 0px; padding: 0px; ">鏈嶅姟绔湴鍧涓嶅銆?/p><p style="margin: 0px; padding: 0px; "> </p><p style="margin: 0px; padding: 0px; ">3.java.net.SocketException: Unexpected end of file from server</p><p style="margin: 0px; padding: 0px; "> </p><p style="margin: 0px; padding: 0px; ">榪欎釜寮傚父鍜屽鎴風娌℃湁鍏崇郴錛岃鏄庡凡緇忓彂閫佹垚鍔熴傛槸鏈嶅姟绔殑闂銆傛湁鍙兘鏄槻鐏鐨勫師鍥狅紝涔熷彲鑳芥槸鏈嶅姟绔病澶勭悊瀹㈡埛绔殑鍝嶅簲銆?/p><p style="margin: 0px; padding: 0px; ">鍙﹀鏈変漢璇村綋URL榪囬暱鏃朵篃浼氬彂鐢熸閿欒錛屽綋浣跨敤URL鍙戦佹暟鎹椂錛屽彲浠ュ弬鑰冩鎰忚銆?/p><p style="margin: 0px; padding: 0px; "> </p><p style="margin: 0px; padding: 0px; ">4.java.io.IOException:server returned HTTP response code :500</p><p style="margin: 0px; padding: 0px; "> </p><p style="margin: 0px; padding: 0px; "> </p><p style="margin: 0px; padding: 0px; ">榪欎釜寮傚父鏄湇鍔$浠g爜鐨勯棶棰樸傛湇鍔$鐩稿簲浠g爜鎵ц鏃舵姏鍑轟簡寮傚父銆?/p><p style="margin: 0px; padding: 0px; "> </p><p style="margin: 0px; padding: 0px; "> </p><p style="margin: 0px; padding: 0px; ">鏈鍚?濡傛灉榪斿洖鐨勭姸鎬佺爜鏄?00 錛岃〃紺烘垚鍔熴?/p><br /><p> </p><p> </p><img src ="http://m.tkk7.com/stevenjohn/aggbug/388389.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/stevenjohn/" target="_blank">abin</a> 2012-09-23 22:31 <a href="http://m.tkk7.com/stevenjohn/archive/2012/09/23/388389.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Https ssl javahttp://m.tkk7.com/stevenjohn/archive/2012/08/23/386102.htmlabinabinThu, 23 Aug 2012 05:54:00 GMThttp://m.tkk7.com/stevenjohn/archive/2012/08/23/386102.htmlhttp://m.tkk7.com/stevenjohn/comments/386102.htmlhttp://m.tkk7.com/stevenjohn/archive/2012/08/23/386102.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/386102.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/386102.htmlhttp://www.iteye.com/topic/1125183
http://blog.sina.com.cn/s/blog_5f64eccd0100p0pc.html
http://www.iteye.com/topic/1125183
http://hi.baidu.com/zhouqiugang/blog/item/65c9e160177db3cc8cb10d86.html
http://blog.csdn.net/zrbin153/article/details/6026840
HttpClient璁塊棶https绔欑偣璇佷功鍔犺澆闂
http://237451446.blog.51cto.com/2307663/759338
http://m.tkk7.com/sxyx2008/archive/2011/07/08/353940.html


abin 2012-08-23 13:54 鍙戣〃璇勮
]]>
keytool+tomcat閰嶇疆HTTPS鍙屽悜璇佷功璁よ瘉http://m.tkk7.com/stevenjohn/archive/2012/08/22/385989.htmlabinabinWed, 22 Aug 2012 01:52:00 GMThttp://m.tkk7.com/stevenjohn/archive/2012/08/22/385989.htmlhttp://m.tkk7.com/stevenjohn/comments/385989.htmlhttp://m.tkk7.com/stevenjohn/archive/2012/08/22/385989.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/385989.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/385989.html

緋葷粺闇姹傦細

1銆?nbsp; Windows緋葷粺鎴朙inux緋葷粺

2銆?nbsp; 瀹夎騫墮厤緗甁DK 1.6.0_13

3銆?nbsp; 瀹夎騫墮厤緗甌omcat 6.0

 

絎竴姝ワ細涓烘湇鍔″櫒鐢熸垚璇佷功

1銆?nbsp; Windows緋葷粺

  • “榪愯”鎺у埗鍙幫紝榪涘叆%JAVA_HOME%/bin鐩綍
  • 浣跨敤keytool涓篢omcat鐢熸垚璇佷功錛屽亣瀹氱洰鏍囨満鍣ㄧ殑鍩熷悕鏄?#8220;localhost”錛宬eystore鏂囦歡瀛樻斁鍦?#8220;D:\home\tomcat.keystore”錛屽彛浠や負“password”錛屼嬌鐢ㄥ涓嬪懡浠ょ敓鎴愶細

 

keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\home\tomcat.keystore -validity 36500

 

(鍙傛暟綆瑕佽鏄庯細“D:\home\tomcat.keystore”鍚箟鏄皢璇佷功鏂囦歡鐨勪繚瀛樿礬寰勶紝璇佷功鏂囦歡鍚嶇О鏄痶omcat.keystore 錛?#8220;-validity 36500”鍚箟鏄瘉涔︽湁鏁堟湡錛?6500琛ㄧず100騫達紝榛樿鍊兼槸90澶?

  • 鍦ㄥ懡浠よ濉啓蹇呰鍙傛暟錛?/span>

A銆佽緭鍏eystore瀵嗙爜錛氭澶勯渶瑕佽緭鍏ュぇ浜?涓瓧絎︾殑瀛楃涓?/span>

B銆?#8220;鎮ㄧ殑鍚嶅瓧涓庡姘忔槸浠涔堬紵”榪欐槸蹇呭~欏癸紝騫朵笖蹇呴』鏄疶OMCAT閮ㄧ講涓繪満鐨勫煙鍚嶆垨鑰匢P[濡傦細gbcom.com 鎴栬?10.1.25.251]錛堝氨鏄綘灝嗘潵瑕佸湪嫻忚鍣ㄤ腑杈撳叆鐨勮闂湴鍧錛夛紝鍚﹀垯嫻忚鍣ㄤ細寮瑰嚭璀﹀憡紿楀彛錛屾彁紺虹敤鎴瘋瘉涔︿笌鎵鍦ㄥ煙涓嶅尮閰嶃傚湪鏈湴鍋氬紑鍙戞祴璇曟椂錛屽簲濉叆“localhost”

C銆?#8220;浣犵殑緇勭粐鍗曚綅鍚嶇О鏄粈涔堬紵”銆?#8220;鎮ㄧ殑緇勭粐鍚嶇О鏄粈涔堬紵”銆?#8220;鎮ㄦ墍鍦ㄥ煄甯傛垨鍖哄煙鍚嶇О鏄粈涔堬紵”銆?#8220;鎮ㄦ墍鍦ㄧ殑宸炴垨鑰呯渷浠藉悕縐版槸浠涔堬紵”銆?#8220;璇ュ崟浣嶇殑涓ゅ瓧姣嶅浗瀹朵唬鐮佹槸浠涔堬紵”鍙互鎸夌収闇瑕佸~鍐欎篃鍙互涓嶅~鍐欑洿鎺ュ洖杞︼紝鍦ㄧ郴緇熻闂?#8220;姝g‘鍚楋紵”鏃訛紝瀵圭収杈撳叆淇℃伅錛屽鏋滅鍚堣姹傚垯浣跨敤閿洏杈撳叆瀛楁瘝“y”錛屽惁鍒欒緭鍏?#8220;n”閲嶆柊濉啓涓婇潰鐨勪俊鎭?/span>

D銆佽緭鍏?lt;tomcat>鐨勪富瀵嗙爜錛岃繖欏硅緝涓洪噸瑕侊紝浼氬湪tomcat閰嶇疆鏂囦歡涓嬌鐢紝寤鴻杈撳叆涓巏eystore鐨勫瘑鐮佷竴鑷達紝璁劇疆鍏跺畠瀵嗙爜涔熷彲浠?/span>

  • 瀹屾垚涓婅堪杈撳叆鍚庯紝鐩存帴鍥炶濺鍒欏湪浣犲湪絎簩姝ヤ腑瀹氫箟鐨勪綅緗壘鍒扮敓鎴愮殑鏂囦歡

2銆?nbsp; Linux緋葷粺

  • “榪愯”鎺у埗鍙幫紝榪涘叆%JAVA_HOME%/bin鐩綍
  • 浣跨敤濡備笅鍛戒護鐢熸垚錛?/span>

 

./keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/ac/web/tomcat.keystore -validity 36500

(鍙傛暟綆瑕佽鏄庯細“/etc/tomcat.keystore”鍚箟鏄皢璇佷功鏂囦歡淇濆瓨鍦ㄨ礬寰?usr/local/ac/web/涓嬶紝璇佷功鏂囦歡鍚嶇О鏄痶omcat.keystore 錛?#8220;-validity 36500”鍚箟鏄瘉涔︽湁鏁堟湡錛?6500琛ㄧず100騫達紝榛樿鍊兼槸90澶?

  • 鍦ㄥ懡浠よ濉啓蹇呰鍙傛暟錛?/span>

A銆丒nter keystore password錛氭澶勯渶瑕佽緭鍏ュぇ浜?涓瓧絎︾殑瀛楃涓?/span>

B銆?#8220;What is your first and last name?”榪欐槸蹇呭~欏癸紝騫朵笖蹇呴』鏄疶OMCAT閮ㄧ講涓繪満鐨勫煙鍚嶆垨鑰匢P[濡傦細gbcom.com 鎴栬?10.1.25.251]錛屽氨鏄綘灝嗘潵瑕佸湪嫻忚鍣ㄤ腑杈撳叆鐨勮闂湴鍧

C銆?#8220;What is the name of your organizational unit?”銆?#8220;What is the name of your organization?”銆?#8220;What is the name of your City or Locality?”銆?#8220;What is the name of your State or Province?”銆?#8220;What is the two-letter country code for this unit?”鍙互鎸夌収闇瑕佸~鍐欎篃鍙互涓嶅~鍐欑洿鎺ュ洖杞︼紝鍦ㄧ郴緇熻闂?#8220;correct?”鏃訛紝瀵圭収杈撳叆淇℃伅錛屽鏋滅鍚堣姹傚垯浣跨敤閿洏杈撳叆瀛楁瘝“y”錛屽惁鍒欒緭鍏?#8220;n”閲嶆柊濉啓涓婇潰鐨勪俊鎭?/span>

D銆丒nter key password for <tomcat>錛岃繖欏硅緝涓洪噸瑕侊紝浼氬湪tomcat閰嶇疆鏂囦歡涓嬌鐢紝寤鴻杈撳叆涓巏eystore鐨勫瘑鐮佷竴鑷達紝璁劇疆鍏跺畠瀵嗙爜涔熷彲浠?/span>

  • 瀹屾垚涓婅堪杈撳叆鍚庯紝鐩存帴鍥炶濺鍒欏湪浣犲湪絎簩姝ヤ腑瀹氫箟鐨勪綅緗壘鍒扮敓鎴愮殑鏂囦歡

 

絎簩姝ワ細涓哄鎴風鐢熸垚璇佷功

 

  • 涓烘祻瑙堝櫒鐢熸垚璇佷功錛屼互渚胯鏈嶅姟鍣ㄦ潵楠岃瘉瀹冦備負浜嗚兘灝嗚瘉涔﹂『鍒╁鍏ヨ嚦IE鍜孎irefox錛岃瘉涔︽牸寮忓簲璇ユ槸PKCS12錛屽洜姝わ紝浣跨敤濡備笅鍛戒護鐢熸垚錛?/span>

 

keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore D:\home\mykey.p12

 

瀵瑰簲鐨勮瘉涔﹀簱瀛樻斁鍦?#8220;D:\home\mykey.p12”錛屽鎴風鐨凜N鍙互鏄換鎰忓箋傚弻鍑籱ykey.p12鏂囦歡錛屽嵆鍙皢璇佷功瀵煎叆鑷蟲祻瑙堝櫒錛堝鎴風錛夈?/span>

 

絎笁姝ワ細璁╂湇鍔″櫒淇′換瀹㈡埛绔瘉涔?/strong>

 

  • 鐢變簬鏄弻鍚慡SL璁よ瘉錛屾湇鍔″櫒蹇呴』瑕佷俊浠誨鎴風璇佷功錛屽洜姝わ紝蹇呴』鎶婂鎴風璇佷功娣誨姞涓烘湇鍔″櫒鐨勪俊浠昏璇併傜敱浜庝笉鑳界洿鎺ュ皢PKCS12鏍煎紡鐨勮瘉涔﹀簱瀵煎叆錛屽繀欏誨厛鎶婂鎴風璇佷功瀵煎嚭涓轟竴涓崟鐙殑CER鏂囦歡錛屼嬌鐢ㄥ涓嬪懡浠わ細

 

keytool -export -alias mykey -keystore D:\home\mykey.p12 -storetype PKCS12 -storepass password -rfc -file D:\home\mykey.cer

 

  • 閫氳繃浠ヤ笂鍛戒護錛屽鎴風璇佷功灝辮鎴戜滑瀵煎嚭鍒?#8220;D:\home\mykey.cer”鏂囦歡浜嗐備笅涓姝ワ紝鏄皢璇ユ枃浠跺鍏ュ埌鏈嶅姟鍣ㄧ殑璇佷功搴擄紝娣誨姞涓轟竴涓俊浠昏瘉涔︼細

 

keytool -import -v -file D:\home\mykey.cer -keystore D:\home\tomcat.keystore

 

  • 閫氳繃list鍛戒護鏌ョ湅鏈嶅姟鍣ㄧ殑璇佷功搴擄紝鍙互鐪嬪埌涓や釜璇佷功錛屼竴涓槸鏈嶅姟鍣ㄨ瘉涔︼紝涓涓槸鍙椾俊浠葷殑瀹㈡埛绔瘉涔︼細

 

keytool -list -keystore D:\home\tomcat.keystore

 

絎洓姝ワ細璁╁鎴風淇′換鏈嶅姟鍣ㄨ瘉涔?/strong>

 

  • 鐢變簬鏄弻鍚慡SL璁よ瘉錛屽鎴風涔熻楠岃瘉鏈嶅姟鍣ㄨ瘉涔︼紝鍥犳錛屽繀欏繪妸鏈嶅姟鍣ㄨ瘉涔︽坊鍔犲埌嫻忚鐨?#8220;鍙椾俊浠葷殑鏍硅瘉涔﹂鍙戞満鏋?#8221;銆傜敱浜庝笉鑳界洿鎺ュ皢keystore鏍煎紡鐨勮瘉涔﹀簱瀵煎叆錛屽繀欏誨厛鎶婃湇鍔″櫒璇佷功瀵煎嚭涓轟竴涓崟鐙殑CER鏂囦歡錛屼嬌鐢ㄥ涓嬪懡浠わ細

 

keytool -keystore D:\home\tomcat.keystore -export -alias tomcat -file D:\home\tomcat.cer

 

 

  • 閫氳繃浠ヤ笂鍛戒護錛屾湇鍔″櫒璇佷功灝辮鎴戜滑瀵煎嚭鍒?#8220;D:\home\tomcat.cer”鏂囦歡浜嗐傚弻鍑籺omcat.cer鏂囦歡錛屾寜鐓ф彁紺哄畨瑁呰瘉涔︼紝灝嗚瘉涔﹀~鍏ュ埌“鍙椾俊浠葷殑鏍硅瘉涔﹂鍙戞満鏋?#8221;銆?/span>

絎洓姝ワ細閰嶇疆Tomcat鏈嶅姟鍣?/strong>

 

鎵撳紑Tomcat鏍圭洰褰曚笅鐨?conf/server.xml錛屾壘鍒板涓嬮厤緗錛屼慨鏀瑰涓嬶細

 

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" maxThreads="150" scheme="https"
secure="true" clientAuth="true" sslProtocol="TLS"
keystoreFile="D:\\home\\test.keystore" keystorePass="123456"
truststoreFile="D:\\home\\test.keystore" truststorePass="123456" />

灞炴ц鏄庯細

  • clientAuth:璁劇疆鏄惁鍙屽悜楠岃瘉錛岄粯璁や負false錛岃緗負true浠h〃鍙屽悜楠岃瘉
  • keystoreFile:鏈嶅姟鍣ㄨ瘉涔︽枃浠惰礬寰?/span>
  • keystorePass:鏈嶅姟鍣ㄨ瘉涔﹀瘑鐮?/span>
  • truststoreFile:鐢ㄦ潵楠岃瘉瀹㈡埛绔瘉涔︾殑鏍硅瘉涔︼紝姝や緥涓氨鏄湇鍔″櫒璇佷功
  • truststorePass:鏍硅瘉涔﹀瘑鐮?/span>

絎簲姝ワ細嫻嬭瘯

 

鍦ㄦ祻瑙堝櫒涓緭鍏?https://localhost:8443/錛屼細寮瑰嚭閫夋嫨瀹㈡埛绔瘉涔︾晫闈紝鐐瑰嚮“紜畾”錛屼細榪涘叆tomcat涓婚〉錛屽湴鍧鏍忓悗浼氭湁“閿?#8221;鍥炬爣錛岃〃紺烘湰嬈′細璇濆凡緇忛氳繃HTTPS鍙屽悜楠岃瘉錛屾帴涓嬫潵鐨勪細璇濊繃紼嬩腑鎵浼犺緭鐨勪俊鎭兘宸茬粡榪嘢SL淇℃伅鍔犲瘑銆?br />

娉ㄦ剰浜嬮」錛氳矊浼煎鍏ヨ瘉涔︾殑鏃跺欙紝鏈濂藉鍏ュ埌“涓漢”閭d竴鏍忛噷闈紝璨屼技瀹㈡埛绔殑鐢ㄦ埛鍚嶄笉濉啓涔熸槸鍙互鐨勶紝鎴栬呴殢渚垮~鍐欍?br />
http://licg1234.blog.163.com/blog/static/13908233320121165356868/ 


 



abin 2012-08-22 09:52 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 国产h视频在线观看免费| 国产VA免费精品高清在线| 99re在线视频免费观看| 亚洲av无码成h人动漫无遮挡 | 亚洲人成中文字幕在线观看| 鲁啊鲁在线视频免费播放| 日韩一品在线播放视频一品免费| 亚洲精品无码一区二区| 国产一区二区三区免费视频| 极品美女一级毛片免费| 中文字幕亚洲日本岛国片| 在线播放免费人成毛片乱码 | 久久亚洲精品成人AV| 114级毛片免费观看| 亚洲人成77777在线观看网| 大学生a级毛片免费观看| 国产成人亚洲综合a∨| 亚洲精品国产V片在线观看| 91在线视频免费观看| 亚洲最新视频在线观看| 成人片黄网站A毛片免费| 国产AV无码专区亚洲AV琪琪| 亚洲精品尤物yw在线影院| 特级做A爰片毛片免费看无码| 亚洲午夜视频在线观看| 午夜毛片不卡高清免费| 一级毛片免费在线播放| 久热综合在线亚洲精品| 西西大胆无码视频免费| 搜日本一区二区三区免费高清视频 | 亚洲av永久无码| 激情97综合亚洲色婷婷五| 91精品免费观看| 日韩精品亚洲专区在线影视| 亚洲无av在线中文字幕| 可以免费看黄的网站| 日韩精品无码免费视频| 亚洲三级电影网址| 国产色爽免费视频| 99视频有精品视频免费观看| 最新亚洲人成网站在线观看 |