java ssl连接_Java http SSL连接(双向认证)及共享Cookie方法

SSL是什么

百度、谷歌自己搜吧,你以为我会在这里告诉你?

安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。

SSL是Netscape于1994年开发的,后来成为了世界上最著名的web安全机制,所有主要的浏览器都支持SSL协议。

目前有三个版本:2、3、3.1,最常用的是第3版,是1995年发布的。

SSL协议的三个特性

1 保密:在握手协议中定义了会话密钥后,所有的消息都被加密。

2 鉴别:可选的客户端认证,和强制的服务器端认证。

3 完整性:传送的消息包括消息完整性检查(使用MAC)。

SSL的位置

SSL介于应用层和TCP层之间。应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。

** 这里是HTTP封装过的,不是直接操作的socket**

//封装操作

SSLContext sslcontext = SSLContexts

.custom()

.loadTrustMaterial(trustStore, new TrustSelfSignedStrategy()) //加载本地信任证书 信任自签名策略

.loadKeyMaterial(clientStore, "123456".toCharArray()) //加载本地证书

.build(); //构造

SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext); //制造一个socket

httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build(); //通过这个socket来生成一个http请求

// 创建http请求(get方式) delete put 全都有相应的方法

//共享一个cookie

HttpGet httpget = new HttpGet(url1);

HttpGet httpget2 = new HttpGet(url2);

//先上gradle配置

compile 'org.apache.httpcomponents:httpclient:4.5.2'

// https://mvnrepository.com/artifact/org.json/json

compile group: 'org.json', name: 'json', version: '20160810'

compile group: 'javax.mail', name: 'mail', version: '1.4.7'

compile group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.54'

compile group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: '1.54'

compile 'commons-codec:commons-codec:1.10'

testCompile group: 'junit', name: 'junit', version: '4.11'

//调用

String url1 = "https://mail.koal.com";

String url2 = "https://mail.koal.com/userMail!queryMailList.do?currentFolder.folderId=10";

//如果不想在操作COOKIE,就这么写

// url1为登录

// url2为拉取列表

//两次请求共用一个cookie

Getmail.ssl(url1, url2);

//两次请求用一个 cookieStore

// Getmail.ssl1(url1);

// Getmail.ssl2(url2);

import org.apache.http.HttpEntity;

import org.apache.h

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值