导航:首页 > 编程语言 > javahttps双向认证

javahttps双向认证

发布时间:2023-05-26 05:35:49

java后台如何给前端写使用接口

java后台如何给前端写使用接口,框架一开始就得考虑好的,很多都使用mvc架构往往用回户登录时,用户密码符合,会允答许其访问,保存登录信息,下次就不需要再次登录了,直到保存的信息过期或无效,很多也都是使用组件来实现的,功能多又安全,需要单点登录的可以再加上cas。

Ⅱ HTTPS基础

本章是HTTPS那些事儿的第一篇文章,其他相关文章请参见: 前言
本篇主要讲解Https的基础知识,涉及到以下几点:

前面说到SSL是为了解决HTTP明文传输带来的问题,所以SSL采用的是加密传输。发送方通过密钥加密明文,接收方通过密钥解密成明文。该密钥是传输成功的关键,那么这个密钥是怎么来的呢?这就涉及到我们所说的HTTPS握手了,握手结束后发送方和接收方就会得到密钥了。那么HTTPS的握手过程是怎么样的呢?

1). Client Hello
Client发起连接请求,请求参数包括客户端支持的TLS版本列表、加密算法列表、压缩算法列表、随机数 random_C 和一些扩展信息
2). Server Hello
Server接收到手姿Client的Hello请求后,根据Server端的配置以及Client Hello发送的参数,筛选出与Client最兼容的TLS版本、加密算法版本、压缩算法版本以及随机数 random_S
3). Server证书
向client端发送Server的CA证书
4). Server Hello Finish
通知Client端Server Hello信息发送结束
5). 校验Server证书
Client接收到Server证书后,通过本地的证书信任信息进行校验,确认Server的CA证书是李手否由可信机构颁发。除此之外,还会校验证书是否还在有效期、域名是否与当前访问域名匹配等
6). Client Key Exchange
Server的CA证书校验通过后,Client生成随机数 Pre_Master ,并采用Server证书中的公钥加密发送给Server端。此刻,客户端已经获取到全部的生成密钥需要的信息,则通过协商的算法生成通信密钥enc_key:

7). Change Cipher Spec
密钥enc_key生成后,通知Server后续的通信Client端都使用enc_key进行加密通信
8). Finish Handshake
结合之前所有通信参数的 hash 值与其它相关信息生成一段数据,使用协商密钥 enc_key 与协商算法将其加密,然后发送给服务器用于验证服务端其生成的enc_key是否正确
9). Change Cipher Spec
Server接收到Client Handshake Finish消息后,生成自己的enc_key,并用enc_key验证Client Handshake Finish信息是否正确。如果正确,则通知Client后续通信Server端都使用协商密钥enc_key进行加密通信
10). Finish Handshake
Server也结合所有当前的通信参数信息生成一段数据并采用协商密钥 enc_key与协商算法加密,并发送到客户端
最后,Client端校验Server Finish Handshake信息,如果校验通过,则会将enc_key作为后续加密通信的密钥。

以上所描述的其实就是我们说所的单向认证过程,如果是双向认证,只是在单向认证的过程中增加Server端对Client端的证书认证过程而已。

HTTPS握手过程中,在第3步Server端会发送其CA证书到Client端。这里所说的CA证书的作用是用来证明当前访问的服务器是Client想要毕扰绝访问的服务器,而不是他人伪装成的假服务器。那么这个CA证书是什么呢?
举个生活中的例子:
在你去银行办卡的时候,你要怎么证明你是你呢?一般银行会要求你出示身份证,然后验证身份证是否可信,同时比对上面的照片是不是你。这里所说的身份证就是证明你是你的证据,与我们所说的CA证书作用相同。身份证有一个最大的特性:由国家所信任的公安部门颁发的,银行可以通过公安部门来校验你的身份证是否可信。
所以,为了使CA证书也被大家都信任的话,也引入了类似的机构,该机构称为CA(Certification Authority的简称),该结构颁发的证书称为CA证书。HTTPS握手过程中,Client端会通过本地的证书信任信息校验Server证书,这里所说的证书信任信息其实就是CA机构相关的信息。

Server端想要获取到CA证书,必须向CA机构提出申请,当CA机构审核通过后,才会为Server颁发证书。那么这个过程涉及到什么信息呢?
首先CA机构会有自己的公私钥ca.pub和ca.pri,Server也需要有自己的公私钥server.pub和server.pri。
在Server提出申请时,需要提供server.pub和服务器信息——明文信息(包括证书申请信息、证书颁发机构、证书过期时间等)。CA接收到请求后,通过各种手段确认Server信息的合法性,通过后会将明文做hash,然后再使用ca.pri对hash进行签名,最后将签名和明文信息明文放到一起,就是我们的CA证书。证书信息类似于下图:

本篇对HTTP、SSL/TSL、HTTPS,以及HTTPS中设计的HTTPS握手和CA证书做了详细描述,解释了HTTPS相关的基本概念。本系列文章后续还会讲述java中的HTTPS那些事儿以及Spring的RestTemplate与HTTPS,如果有兴趣请参见后续文章。可通过 此处 寻找到本系列文章的目录。

Ⅲ 关于java的SSL https协议

1.SSL单向和双向的意思就是字面的意思:单向就是用户到服务器之间只是单方面的ssl,而双向就是双方都可以使用;这个具体概念你可以去网上多了解了解,一般登录用单向的就可以了,除非是PKI方面的会用到双向认证;
2.实现方面,不算简单也不算复杂,现在给你说肯定说不清楚,但是这个方面的资料还是很多的,比如:你只需要在tomcat中配置开启ssl应用,即端口8443(但是不止开端口这么简单,调通就可以了),实现的时候某几个jsp页面地址是8443下的就可以了.当然需要Filter之类的来控制.
....... 好辛苦

Ⅳ https怎么配置

您好!州码
一、指迹液首先在独立的服务器(云服唯物务器、VPS),搭建好普通的网站,并且这个网站可以访问。
二、登陆淘宝搜索关键字:Gworg 获取SSL证书。
三、拿到SSL证书安装到服务器就实现HTTPS网站了。
注:虚拟主机通常都不支持。

Ⅳ java httpClients使用代理服务器访问第三方时需要双向认证,但是认证不过,不使用代理就可以,请大神指点

那就不使用代理呗,不是更简单

Ⅵ java 建立双向认证 https连接

绝对好用的。直用的这个,GOOD LUCK FOR YOU

public static String httpRequest(String requestUrl, String requestMethod, String outputStr) {
JSONObject jsonObject = null;
StringBuffer buffer = new StringBuffer();
try {
// 创建SSLContext对象,并使用我们指定的信任管理器初始化
TrustManager[] tm = { new MyX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());
// 从上述SSLContext对象中得到SSLSocketFactory对象
SSLSocketFactory ssf = sslContext.getSocketFactory();

URL url = new URL(requestUrl);
HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();
httpUrlConn.setSSLSocketFactory(ssf);

httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
// 设置请求方式(GET/POST)
httpUrlConn.setRequestMethod(requestMethod);

if ("GET".equalsIgnoreCase(requestMethod))
httpUrlConn.connect();

// 当有数据需要提交时
if (null != outputStr) {
OutputStream outputStream = httpUrlConn.getOutputStream();
// 注意编码格式,防止中文乱码
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}

// 将返回的输入流转换成字符串
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
// 释放资源
inputStream.close();
inputStream = null;
httpUrlConn.disconnect();
System.out.println("返回的数据:"+buffer.toString());
// jsonObject = JSONObject.fromObject(buffer.toString());
} catch (ConnectException ce) {
log.error("Weixin server connection timed out.");
} catch (Exception e) {
log.error("https request error:{}", e);
}
return buffer.toString();
}

Ⅶ java怎么模拟https双向认证但客户端只有ukey的请求

对于不是优盘的ukey,一般都有驱动程序的。用正确的api就可以不导入直接使用。

Ⅷ java https 400 No required SSL certificate was sent

使用4层协议转发

Ⅸ java怎么去调用tomcat6配置使用ssl双向认证

客户端的JAVA导入ROOT证书、客户端证书,,,,然后指定使用SSL,就可以

阅读全文

与javahttps双向认证相关的资料

热点内容
桌面经常出现options文件 浏览:436
成龙可以复活的那个电影叫什么 浏览:986
ugt型刀怎么编程铣外圆 浏览:972
win10主题绅士 浏览:319
苹果7p的双镜头怎么用 浏览:439
enbx文件怎么打开 浏览:632
前戏特别长的电影 浏览:348
文件管理的五大职业是指什么 浏览:351
cad桌面应用程序 浏览:998
少女卖春电影 浏览:61
如何复制word整个文件 浏览:632
和谐网站来一个 浏览:80
360wifi微信无法打开图片 浏览:185
下午我打算去看电影的英文 浏览:592
家政app有哪些优势 浏览:537
18g压缩文件如何传输 浏览:559
微信重新登陆好麻烦 浏览:439
第一次男老师和女学生电影 浏览:135
编程指令goo表示什么意思 浏览:901

友情链接