`
geeksun
  • 浏览: 965011 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java实现HTTPS通讯

 
阅读更多

Https协议用于在保密性要求高的环境中。

Https基于Http协议,在Http协议中加了一层封装,加入SSL/TLS协议。

使用SSL会用到JSSE(Java Secure Socket Extension),JSSE对Java访问SSL和TLS协议都做了封装。

图 1. JSSE相关类之间的关系

 

 

安全套接字程序编写的方法

使用 Java 编写安全套接字程序,可以遵循一定的方法,如图 1 所示,展示了相关的各个类之间的关系。其中 Keystore、KeyManagerFactory、TrustManagerFactory、SSLContext 可以称之为“引擎类”(engine class),对它们指定特定的参数 ( 例如:协议、算法等 ),就可以产生符合我们要求的,用于编程的对象实例。

 编程的步骤可以简单的小结为以下几步:

1. 使用 Keystore 类将证书库或信任库文件加载进来;

2. 使用 KeyManagerFactory 和加载了证书库的 Keystore 实例,产生 KeyManager 实例数组;

3. 使用 TrustManagerFactory 和加载了信任库的 Keystore 实例,产生 TrustManager 实例数组;

4. 使用 SSLContext 初始化 KeyManager 实例数组和 TrustManager 实例数组,从而设定好通信的环境。

5. 利用 SSLContext 产生的 SSLSocket 或 SSLServerSocket 进行通信。

SSL认证

分为单向认证和双向认证。

单向认证是客户端信任服务端,双向认证是客户端既要信任服务端而且服务端也要信任客户端。

不管是客户端还是服务端,都要存以下两样keystore。

KeyStore:保存自己的公钥和私钥。

Trust KeyStore:保存对方的公钥证书。

如果是单向认证,服务器端的KeyStore存储自己的公钥和私钥,客户端的Trust KeyStore要导入服务器端的公钥证书。

如果是双向认证,在上面的基础上,客户端的KeyStore存储自己的公钥和私钥,服务器端的Trust KeyStore要导入客户端的公钥证书。

 

  • 大小: 41.8 KB
分享到:
评论

相关推荐

    用JAVA实现的即时通讯系统

    在这个基于JAVA实现的即时通讯系统中,我们可以探讨以下几个核心知识点: 1. **JAVA基础**:JAVA是一种广泛使用的面向对象的编程语言,其跨平台特性使得它成为构建各种类型应用程序的理想选择,包括即时通讯系统。...

    JAVA调用梦网云通讯平台API实现短信发送

    在本文中,我们将深入探讨如何使用Java编程语言调用梦网云通讯平台的API来实现短信发送功能。梦网云通讯平台提供了一整套服务,包括短信、语音、流量等通信能力,帮助企业轻松构建通信应用。为了实现这个功能,我们...

    java与Melsec A-1E通信 java与PLC通信 源码,java与三菱PLC JAVA与Melsec A-1通信

    1E通信 java与PLC通信 源码文件类型:程序源代码主要功能: 本实例基于Melsec A-1E TCP协议,采用JAVA语言编写上位机软件实现Socket与三菱 MC系列PLC通讯,实例中通过发送指令实现与PLC的通讯握手,PLC寄存器数据的...

    Java企业内部通讯系统Java企业内部通讯系统Java企业内部通讯系统

    Java企业内部通讯系统是现代企业信息化建设中的重要组成部分,它为员工提供了一个高效、便捷的沟通平台,可以实现即时消息传递、文件共享、群组讨论等功能。本系统通常基于Java技术栈开发,利用其跨平台性和强大的库...

    java 基于websocket实现的视频聊天

    Java基于WebSocket实现的视频聊天是一种实时通信(Real-Time Communication, RTC)的应用,它利用了WebSocket这一先进的网络协议来实现高效、双向的数据传输。WebSocket协议是HTML5的一个重要特性,为客户端与服务器...

    AJax,java即时通讯 web qq

    【标题】"AJax,java即时通讯 web qq"揭示了一个基于Web技术实现的即时通讯系统,该系统利用Ajax和Java技术来模拟QQ的聊天功能。Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,...

    通过java实现简单的通讯系统 即时通

    本项目以Java语言为基础,利用套接字(Socket)技术,尝试实现了一个简单的通讯系统,旨在提供基本的聊天功能,包括一对一的私聊以及群聊。尽管这个系统存在一些限制,如仅支持点对点之间的聊天,但它为我们展示了...

    java与Omron Fins通信源码 java与欧姆龙PLC通信 全开源 springboot与欧姆龙PLC fins通信

    主要功能: 本实例基于OMRON Fins TCP协议,采用JAVA语言编写上位机软件实现Socket与OMRON CP系列PLC通讯,实例中通过发送指令实现与PLC的通讯握手,PLC寄存器数据的读取、PLC寄存器数据的写入等功能。 适合人群:...

    java仿QQ功能实现

    6. **网络编程**:实现即时通讯需要对网络编程有深入的理解,如TCP/IP协议、HTTP/HTTPS协议,以及如何通过网络进行数据传输。 7. **安全性**:考虑到用户的隐私和账户安全,项目可能还需要实现一些安全措施,例如...

    java webscoket 即时通讯源码

    标题"java websocket 即时通讯源码"表明这是一个关于使用Java实现WebSocket即时通讯的源代码示例。这个项目可能包含了服务器端和客户端的实现,展示了如何通过WebSocket协议进行数据传输,实现用户之间的实时交互。 ...

    基于Chrome、Java、WebSocket、WebRTC实现浏览器视频通话

    【标题】"基于Chrome、Java、WebSocket、WebRTC实现浏览器视频通话" 描述了现代Web技术如何集成到一个实时通信应用中,使用户能够在浏览器上进行高质量的视频通话。这个项目利用了四个关键技术:Chrome浏览器、Java...

    基于Java的仿qq即时通讯软件设计与实现.zip

    设计一款仿QQ的个人用户即时通讯软件,能够实现注册,登陆,与好友聊天等功能。要求使用GUI界面设计,网络通信,数据库连接,泛型容器等技术。 详细介绍参考:...

    用JAVA实现MSN Messenger的功能

    【标题】:“用JAVA实现MSN Messenger的功能” 在Java编程领域,实现类似MSN Messenger的功能是一项具有挑战性的任务,因为这涉及到即时通讯(IM)系统的设计与开发。MSN Messenger,虽然已经停服,但其核心功能...

    Flex与java通讯

    Adobe提供了两种主要的技术来实现Flex和Java之间的通信:BlazeDS和LiveCycle Data Services (LCDS)。BlazeDS是免费开源的解决方案,它提供了一套基于AMF(Action Message Format)的数据传输协议,能够高效地在Flex...

    java与C通讯之socket

    本项目着重讲解了如何使用Java与C语言通过Socket进行通信,实现一个基于Web的党费上交系统。在这个系统中,Java负责前端展示和部分业务逻辑,而C则作为后端服务,处理数据存储与查询,两者之间通过Socket进行数据...

    java实现推送钉钉消息(带图片,连接)demo

    Java 实现钉钉消息推送是一项常见的企业级应用需求,尤其在SpringBoot框架下,能够方便地集成各种服务。本文将详细讲解如何使用Java和SpringBoot来实现钉钉的消息推送功能,包括发送带有图片和链接的卡片消息。 ...

    java实现的即时通信系统

    本项目是一个基于Java实现的即时通信系统,它充分展示了Java在网络编程方面的强大能力。即时通信系统,通常简称为IM(Instant Messaging),允许用户实时地交换消息,与聊天室、一对一私聊、群组聊天等功能密切相关...

    java前后端通讯AES加密及解密样例

    在提供的"demo"文件中,可能包含了具体的项目结构、配置文件、源代码等,这些内容可以帮助进一步理解和实现这个Java前后端通讯AES加密及解密的案例。实际操作时,需要根据文件内容进行相应的集成和调试。

    基于Java和Netty实现的联机版坦克大战游戏.zip

    使用Netty实现客户端和服务端之间的通讯 2. 使用Marshalling作为编解码技术 3. 游戏界面使用java自带的swing与awt进行编写 4. 使用Spring的依赖注入与java的反射机制简化了消息类型的判定 5. 使用Mysql数据库 6. ...

    网络调试助手(NetAssist)java socket 通讯代码 可聊天

    网络调试助手(NetAssist)java socket通讯代码,java代码,有看不懂的可以参考博客https://blog.csdn.net/qq_39400208/article/details/81096436 java socket Javaso netass 网络调试助手。 自己编写的JAVA程序,...

Global site tag (gtag.js) - Google Analytics