博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java调用Https
阅读量:6735 次
发布时间:2019-06-25

本文共 710 字,大约阅读时间需要 2 分钟。

hot3.png

这是一个比较难的问题。

基本思路:

1、Java客户端需要下载一个证书,这个证书是可以通过浏览器下载,或者从服务器拷贝也行。

  • 一般是通过新建一个509TrustedManager,它里面有各种checkServer,checkClient的方法,验证通过了才行。不过为了偷懒,一般会不实现,用在线上是有风险的,仅用于demo阶段。当然,在创建这个Manager时,需要加载Java客户端本地的证书。
  • 如果不加载证书的话,则会报handShake握手的异常。

 

2、暴露的问题:

  • 在网上下载的例子中可以观察到,请求实体用到了accept=text/xml这种格式,暴露了对http底层通讯原理还不是特别了解。
  • 加载Java证书那个地方始终通不过,我是本地自己装了个tomcat,自己创建了一个证书,叫.keystore文件,但不知道如何被客户端加载。
  • 还是未能完全明白浏览器在利用https时,客户端和服务端是如何加密保护的。因为浏览器在向服务器发起请求时,服务器是将公钥返回给客户端,这时难道就不能截获吗?还有,https是既利用了非对称加密,也利用了对称加密,在非对称加密完后,会产生一个randomPassword,然后后面交流就全用这个randomPassword来进行对称加密了,那我就在想了,这时再进行拦截不就行了?
  • 现在才发现,通讯才是最难的。为啥会出现乱码?因为从一个请求,先到Java客户端,再到tomcat,再返回,任何一个地方都有可能引起乱码,所以必须搞清楚每一个地方

-----

  • demo代码已经放到上

 

 

 

 

转载于:https://my.oschina.net/windows20/blog/867225

你可能感兴趣的文章
自动将BAT文件转换为EXE
查看>>
京东的批作业?
查看>>
ubuntu下salt安装使用初体验
查看>>
PowerShell 多线程测试IP端口
查看>>
使用SQL Server 2008 Extended Events SSMS Addin轻松管理XEvents
查看>>
Django-celery 安装及使用测试
查看>>
优秀UML制图开源工具--ArgoUML
查看>>
没有服务台,就没有ITSM
查看>>
加点自已内容的新内核下L7-FILTER的应用实例!
查看>>
Oracle RAC负载均衡和透明应用失败切换的配置和测试过程(一、测试名词解释)...
查看>>
不要返回null之EmptyFactory
查看>>
Visual Studio 11 Beta新特性(一):安装VS11
查看>>
QQ-weiyun(微云)-云储存
查看>>
微信公众帐号开发教程第3篇-开发模式启用及接口配置(转)
查看>>
第 12 章 Other Web Server
查看>>
.NET项目web自动化测试实战——Selenium 2.0
查看>>
[LeetCode] Split Concatenated Strings 分割串联字符串
查看>>
Asp.Net SignalR - 持久连接类
查看>>
11.8. NAT
查看>>
PowerShell调用jira rest api实现jira统计自动化
查看>>