zoukankan      html  css  js  c++  java
  • HttpClient SSL示例(转)

    原文地址:

    http://www.cnblogs.com/jerry19890622/p/4291053.html

    package com.jerry.httpclient;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.security.KeyStore;
    
    import javax.net.ssl.SSLContext;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
    import org.apache.http.conn.ssl.SSLContexts;
    import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    
    /**
     * 
     * @author Jerry
     * @date 2015年2月12日 下午11:38:33
     */
    public class SSLDemo {
        
        public static final String KEY_STORE_TYPE_JKS = "jks";  
        public static final String KEY_STORE_TYPE_P12 = "PKCS12";   
        
        public static void main(String[] args) throws Exception{
            KeyStore keyStore = KeyStore.getInstance(KEY_STORE_TYPE_P12);//服务器发给浏览器的KeyStore
            KeyStore trustStore = KeyStore.getInstance(KEY_STORE_TYPE_JKS);//浏览器发给服务器的KeyStore
            FileInputStream input = new FileInputStream(new File("d:\tomcat.keystore"));
            FileInputStream keyInput = new FileInputStream("d:\mykey.p12");
            trustStore.load(input, "123456".toCharArray());
            keyStore.load(keyInput, "123456".toCharArray());
            /*
             * 使用2个keystore创建sslcontext
             */
            SSLContext sslContext = SSLContexts.custom().useTLS().
                                loadTrustMaterial(trustStore, new TrustSelfSignedStrategy())
                                .loadKeyMaterial(keyStore, "123456".toCharArray())
                                .build();
            //通过sllcontext创建一个socket factory
            SSLConnectionSocketFactory sslFactory = new SSLConnectionSocketFactory(sslContext);
            CloseableHttpClient client = HttpClients.custom().setSSLSocketFactory(sslFactory).build();
            HttpGet get = new HttpGet("https://localhost:8443/services");
            System.out.println("executing request: " + get.getRequestLine());
            CloseableHttpResponse response = client.execute(get);
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                System.out.println("response content lenght: " + entity.getContentLength());
            }
            System.out.println(EntityUtils.toString(entity));
            EntityUtils.consume(entity);
        }
    }
    
  • 相关阅读:
    FastDFS--storage文件上传和下载问题
    Ubuntu18.04中安装virtualenv和virtualenvwrapper
    详解文件包含漏洞
    pikachu-数字型注入-sqlmap
    sqlmap命令手册
    SQL注入详解及技巧
    Linux中更新firefox
    DVWA-SQL注入
    CTF杂项题解题思路
    ubuntu搭建环境
  • 原文地址:https://www.cnblogs.com/laoniu85/p/5286847.html
Copyright © 2011-2022 走看看