posts - 297,  comments - 1618,  trackbacks - 0
                原文出處:http://ms.mblogger.cn/veaven/posts/18276.aspx
               今天遇到了一個(gè)JAVA客戶端連接SSL的問題,查了一下javax.net.ssl.HttpsURLConnection的使用,查到這篇不錯(cuò)的文章,轉(zhuǎn)載一下。
              

          /**
           * <p>Title: </p>
           *
           * <p>Description: </p>
           *
           * <p>Copyright: Copyright (c) 2005</p>
           *
           * <p>Company: </p>
           *
           * @author not attributable
           * @version 1.0
           */
          import java.io.BufferedReader;
          import java.io.IOException;
          import java.io.InputStreamReader;
          import java.net.URL;

          import javax.net.ssl.HostnameVerifier;
          import javax.net.ssl.HttpsURLConnection;
          import javax.net.ssl.SSLSession;
          import javax.servlet.ServletException;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import java.io.DataOutputStream;
          import java.net.HttpURLConnection;
          import org.apache.xerces.impl.dv.util.Base64;

          /**
           * @author lyw
           */

          public class ssltest {

              protected String connect(String strUrl) {
                 
                 

                      trustAllHttpsCertificates();
                      HttpsURLConnection.setDefaultHostnameVerifier(hv);

                    
                      URL url = new URL(strUrl);
                      HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
           連接到HTTPS服務(wù)器
                    ......

              }

              HostnameVerifier hv = new HostnameVerifier() {
                  public boolean verify(String urlHostName, SSLSession session) {
                      System.out.println("Warning: URL Host: " + urlHostName + " vs. "
                                         + session.getPeerHost());
                      return true;
                  }
              };


              private static void trustAllHttpsCertificates() throws Exception {

                  //  Create a trust manager that does not validate certificate chains:

                  javax.net.ssl.TrustManager[] trustAllCerts =
                          new javax.net.ssl.TrustManager[1];

                  javax.net.ssl.TrustManager tm = new miTM();

                  trustAllCerts[0] = tm;

                  javax.net.ssl.SSLContext sc =
                          javax.net.ssl.SSLContext.getInstance("SSL");

                  sc.init(null, trustAllCerts, null);

                  javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(
                          sc.getSocketFactory());

              }

              public static class miTM implements javax.net.ssl.TrustManager,
                      javax.net.ssl.X509TrustManager {
                  public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                      return null;
                  }

                  public boolean isServerTrusted(
                          java.security.cert.X509Certificate[] certs) {
                      return true;
                  }

                  public boolean isClientTrusted(
                          java.security.cert.X509Certificate[] certs) {
                      return true;
                  }

                  public void checkServerTrusted(
                          java.security.cert.X509Certificate[] certs, String authType) throws
                          java.security.cert.CertificateException {
                      return;
                  }

                  public void checkClientTrusted(
                          java.security.cert.X509Certificate[] certs, String authType) throws
                          java.security.cert.CertificateException {
                      return;
                  }
              }
             
          }

          posted on 2008-01-11 15:48 阿蜜果 閱讀(3062) 評論(0)  編輯  收藏 所屬分類: Java
          <2008年1月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

                生活將我們磨圓,是為了讓我們滾得更遠(yuǎn)——“圓”來如此。
                我的作品:
                玩轉(zhuǎn)Axure RP  (2015年12月出版)
                

                Power Designer系統(tǒng)分析與建模實(shí)戰(zhàn)  (2015年7月出版)
                
               Struts2+Hibernate3+Spring2   (2010年5月出版)
               

          留言簿(263)

          隨筆分類

          隨筆檔案

          文章分類

          相冊

          關(guān)注blog

          積分與排名

          • 積分 - 2299173
          • 排名 - 3

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 克拉玛依市| 赤水市| 沈丘县| 宜都市| 卓尼县| 宜兰市| 泽库县| 岱山县| 洛宁县| 永福县| 和平县| 资中县| 阳东县| 沙雅县| 潞西市| 图木舒克市| 象山县| 灌云县| 辰溪县| 都江堰市| 石景山区| 吴堡县| 巢湖市| 精河县| 汕头市| 长治县| 中江县| 五寨县| 张家界市| 咸阳市| 亳州市| 红原县| 康乐县| 科技| 龙井市| 威远县| 泸水县| 永州市| 五大连池市| 嘉鱼县| 荣昌县|