欢迎您光临深圳塔灯网络科技有限公司!
电话图标 余先生:13699882642

网站百科

为您解码网站建设的点点滴滴

java 使用ssl,tls 证书认证

发表日期:2018-04 文章编辑:小灯 浏览次数:6658

public class HttpsTest {

public static void test(Context context)throws Exception {

//获得ssl上下文

        SSLContext sslContext = SSLContext.getInstance("TLS");

        //信任证书管理器

        TrustManagerFactory trustManager = TrustManagerFactory.getInstance("X509");

        //证书 第一种,导入成bks或者jks的证书

//        KeyStore keyStore = KeyStore.getInstance("BKS");

//        keyStore.load(context.getAssets().open("12306.bks"),"123456".toCharArray());

 //证书 第二种,直接使用cer证书      

  CertificateFactory cf = CertificateFactory.getInstance("X.509");

        X509Certificate cert = (X509Certificate)cf.generateCertificate(context.getAssets().open("srca.cer"));

        KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());

        keyStore.load(null, null);

        keyStore.setCertificateEntry("certificate", cert);

        trustManager.init(keyStore);

   //KeyManager[] 第一个参数是授权的密钥管理器,用来授权验证。第二个是被授权的证书管理器,  

  //用来验证服务器端的证书。只验证服务器数据,第一个管理器可以为null  

   //ssl socket工厂创建socket

      sslContext.init(null,trustManager.getTrustManagers(),null);

        SSLSocketFactory socketFactory = sslContext.getSocketFactory();

        SSLSocket socket = (SSLSocket) socketFactory.createSocket("www.12306.cn", 443);

//        Socket socket = SSLSocketFactory.getDefault().createSocket("www.12306.cn", 443);//有ca认证的证书使用默认

        doHttps(socket);

    }

static void doHttps(Socket socket)throws Exception {

//接受数据的输入流

        final BufferedReader br =new BufferedReader(new InputStreamReader(socket.getInputStream()));

        //发送数据 输出流

        BufferedWriter bw =new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

        new Thread() {

@Override

            public void run() {

while (true) {

String line =null;

                    try {

while ((line =br.readLine()) !=null) {

System.out.println("recv :" + line);

                        }

}catch (IOException e) {

e.printStackTrace();

                    }

}

}

}.start();

        bw.write("GET / HTTP/1.1\r\n");

        bw.write("Host: www.12306.cn\r\n\r\n");

        bw.flush();

    }

}




本页内容由塔灯网络科技有限公司通过网络收集编辑所得,所有资料仅供用户学习参考,本站不拥有所有权,如您认为本网页中由涉嫌抄袭的内容,请及时与我们联系,并提供相关证据,工作人员会在5工作日内联系您,一经查实,本站立刻删除侵权内容。本文链接:https://dengtar.com/20543.html
相关开发语言
 八年  行业经验

多一份参考,总有益处

联系深圳网站公司塔灯网络,免费获得网站建设方案及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:余经理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

  • QQ咨询
  • 在线咨询
  • 官方微信
  • 联系电话
    座机0755-29185426
    手机13699882642
  • 预约上门
  • 返回顶部