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要导入客户端的公钥证书。
相关推荐
在这个基于JAVA实现的即时通讯系统中,我们可以探讨以下几个核心知识点: 1. **JAVA基础**:JAVA是一种广泛使用的面向对象的编程语言,其跨平台特性使得它成为构建各种类型应用程序的理想选择,包括即时通讯系统。...
在本文中,我们将深入探讨如何使用Java编程语言调用梦网云通讯平台的API来实现短信发送功能。梦网云通讯平台提供了一整套服务,包括短信、语音、流量等通信能力,帮助企业轻松构建通信应用。为了实现这个功能,我们...
1E通信 java与PLC通信 源码文件类型:程序源代码主要功能: 本实例基于Melsec A-1E TCP协议,采用JAVA语言编写上位机软件实现Socket与三菱 MC系列PLC通讯,实例中通过发送指令实现与PLC的通讯握手,PLC寄存器数据的...
Java企业内部通讯系统是现代企业信息化建设中的重要组成部分,它为员工提供了一个高效、便捷的沟通平台,可以实现即时消息传递、文件共享、群组讨论等功能。本系统通常基于Java技术栈开发,利用其跨平台性和强大的库...
Java基于WebSocket实现的视频聊天是一种实时通信(Real-Time Communication, RTC)的应用,它利用了WebSocket这一先进的网络协议来实现高效、双向的数据传输。WebSocket协议是HTML5的一个重要特性,为客户端与服务器...
【标题】"AJax,java即时通讯 web qq"揭示了一个基于Web技术实现的即时通讯系统,该系统利用Ajax和Java技术来模拟QQ的聊天功能。Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,...
本项目以Java语言为基础,利用套接字(Socket)技术,尝试实现了一个简单的通讯系统,旨在提供基本的聊天功能,包括一对一的私聊以及群聊。尽管这个系统存在一些限制,如仅支持点对点之间的聊天,但它为我们展示了...
主要功能: 本实例基于OMRON Fins TCP协议,采用JAVA语言编写上位机软件实现Socket与OMRON CP系列PLC通讯,实例中通过发送指令实现与PLC的通讯握手,PLC寄存器数据的读取、PLC寄存器数据的写入等功能。 适合人群:...
6. **网络编程**:实现即时通讯需要对网络编程有深入的理解,如TCP/IP协议、HTTP/HTTPS协议,以及如何通过网络进行数据传输。 7. **安全性**:考虑到用户的隐私和账户安全,项目可能还需要实现一些安全措施,例如...
标题"java websocket 即时通讯源码"表明这是一个关于使用Java实现WebSocket即时通讯的源代码示例。这个项目可能包含了服务器端和客户端的实现,展示了如何通过WebSocket协议进行数据传输,实现用户之间的实时交互。 ...
【标题】"基于Chrome、Java、WebSocket、WebRTC实现浏览器视频通话" 描述了现代Web技术如何集成到一个实时通信应用中,使用户能够在浏览器上进行高质量的视频通话。这个项目利用了四个关键技术:Chrome浏览器、Java...
设计一款仿QQ的个人用户即时通讯软件,能够实现注册,登陆,与好友聊天等功能。要求使用GUI界面设计,网络通信,数据库连接,泛型容器等技术。 详细介绍参考:...
【标题】:“用JAVA实现MSN Messenger的功能” 在Java编程领域,实现类似MSN Messenger的功能是一项具有挑战性的任务,因为这涉及到即时通讯(IM)系统的设计与开发。MSN Messenger,虽然已经停服,但其核心功能...
Adobe提供了两种主要的技术来实现Flex和Java之间的通信:BlazeDS和LiveCycle Data Services (LCDS)。BlazeDS是免费开源的解决方案,它提供了一套基于AMF(Action Message Format)的数据传输协议,能够高效地在Flex...
本项目着重讲解了如何使用Java与C语言通过Socket进行通信,实现一个基于Web的党费上交系统。在这个系统中,Java负责前端展示和部分业务逻辑,而C则作为后端服务,处理数据存储与查询,两者之间通过Socket进行数据...
Java 实现钉钉消息推送是一项常见的企业级应用需求,尤其在SpringBoot框架下,能够方便地集成各种服务。本文将详细讲解如何使用Java和SpringBoot来实现钉钉的消息推送功能,包括发送带有图片和链接的卡片消息。 ...
本项目是一个基于Java实现的即时通信系统,它充分展示了Java在网络编程方面的强大能力。即时通信系统,通常简称为IM(Instant Messaging),允许用户实时地交换消息,与聊天室、一对一私聊、群组聊天等功能密切相关...
在提供的"demo"文件中,可能包含了具体的项目结构、配置文件、源代码等,这些内容可以帮助进一步理解和实现这个Java前后端通讯AES加密及解密的案例。实际操作时,需要根据文件内容进行相应的集成和调试。
使用Netty实现客户端和服务端之间的通讯 2. 使用Marshalling作为编解码技术 3. 游戏界面使用java自带的swing与awt进行编写 4. 使用Spring的依赖注入与java的反射机制简化了消息类型的判定 5. 使用Mysql数据库 6. ...
网络调试助手(NetAssist)java socket通讯代码,java代码,有看不懂的可以参考博客https://blog.csdn.net/qq_39400208/article/details/81096436 java socket Javaso netass 网络调试助手。 自己编写的JAVA程序,...