SSL使用的是非对称加密。
在客户端与服务器间传输的数据是通过使用对称算法(如 DES 或 RC4)进行加密的。
公用密钥算法(通常为 RSA)是用来获得加密密钥交换和数字签名的,此算法使用服务器的SSL数字证书中的公用密钥。有了服务器的SSL数字证书,客户端也可以验证服务器的身份。SSL 协议的版本 1 和 2 只提供服务器认证。版本 3 添加了客户端认证,此认证同时需要客户端和服务器的数字证书。
SSL 握手
SSL 连接总是由客户端启动的。在SSL 会话开始时执行 SSL 握手。此握手产生会话的密码参数。关于如何处理 SSL 握手的简单概述,如下图所示。此示例假设已在 Web 浏览器 和 Web 服务器间建立了 SSL 连接。
图 SSL的客户端与服务器端的认证握手
当使用 基于SSL/TLS(通常使用 https:// URL)向站点进行HTTP请求时,从服务器向客户机发送一个证书。客户机使用已安装的公共证书通过这个证书验证服务器的身份,然后检查 IP 名称(机器名)与客户机连接的机器是否匹配。客户机生成一些可以用来生成对话的私钥(称为会话密钥)的随机信息,然后用服务器的公钥对它加密并将它发送到服务器。服务器用自己的私钥解密消息,然后用该随机信息派生出和客户机一样的私有会话密钥。通常在这个阶段使用 RSA 公钥算法。然后,客户机和服务器使用私有会话密钥和私钥算法(通常是 RC4)进行通信。使用另一个密钥的消息认证码来确保消息的完整性。
HTTPS 是用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的 完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。
一台WEB Server,这台WEB Server上已经申请好了一张CA证书,这张CA证书中包含了一对密钥 ,一把公钥Pub 一把私钥Pri
第一步,客户端以HTTPS://这种方式,来向WEB Server发起一个访问请求。
第二步,服务器在接收到这个访问请求后,会把WEB Server已经由CA证书中包含的那把公钥回传给客户端。这时,客户端的IE浏览器上会弹出一个对话框,提示用户,有一张证书要下载,需要用户确认。这时用户选择是,下载服务器上的这把公钥。
第三步,客户端用这把公钥,生成一把自己的私钥(KEY)
第四步,客户端用服务器传送过来的那把公钥,加密自己生成的那把私钥,也就是KEY,回传给服务器。
第五步,服务器接收到客户端回传的加密信息后,用自己的私钥,也就是Pri,把客户端生成的KEY解密出来。
至此,HTTPS的连接才算建立,才可以真正的传输加密的数据。
SSL用的是非对称加密。非对称加密,加密时用一把密钥,也就是公钥。解密是用另一把密钥,也就是私钥。对称加密,加密解密用的是同一把密钥。
参考链接:
http://blog.csdn.net/program_think/article/details/5300184
相关推荐
虽然很多人将HTTPS与SSL(安全套接层)联系在一起,但实际上,随着时间的发展,SSL逐渐被TLS(传输层安全协议)所取代。SSL最初是由网景公司(Netscape)在上世纪九十年代中期开发的,但后来随着网景公司的衰落,SSL...
总的来说,HTTPS和SSL/TLS是互联网上保障信息安全的重要工具,它们通过复杂的加密算法和身份验证机制,为用户提供了更加安全的网络环境。虽然它们不能消除所有安全风险,但却是当前最广泛接受的网络安全解决方案,...
openjdk 遇到的 HTTPS 的 SSL 异常解决方案 在使用 openjdk 时,可能会遇到 HTTPS 的 SSL 异常问题,例如在使用 HTTPS 连接时出现 KeyException 异常。本文将提供两套解决方案来解决这个问题。 一、卸载 openjdk,...
https ssl Tomcat中实现https安全连接与SSL配置https ssl Tomcat中实现https安全连接与SSL配置https ssl Tomcat中实现https安全连接与SSL配置https ssl Tomcat中实现https安全连接与SSL配置
当用户访问一个采用HTTPS的网站时,浏览器会与服务器进行SSL握手,这个过程中,服务器会出示其SSL证书,证书包含了网站的域名、公钥以及证书颁发机构(CA)的签名。浏览器通过验证CA的签名来确认证书的真实性,如果...
这个实例主要涉及如何配置HttpClient来忽略SSL(Secure Socket Layer)验证,这对于在开发和测试环境中处理自签名证书或未认证的服务器非常有用。以下将详细介绍HttpClient的使用以及如何进行SSL验证的忽略。 首先...
使用HttpClient4.5实现https请求忽略SSL证书验证工具类
IE浏览器在访问HTTPS站点时,会验证服务器的SSL证书,包括证书的颁发机构、有效期、公钥以及与域名的匹配性。如果证书无效或不被信任,浏览器会显示警告信息,用户可以选择继续访问或中断连接。 SSL介绍 SSL协议是...
即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP...
HTTPS是HTTP(超文本传输协议)与SSL/TLS(安全套接层/传输层安全)的结合,旨在为用户提供加密、身份验证和数据完整性。SSL/TLS证书是这个过程中的关键,它由受信任的证书颁发机构(CA)签发,包含站点所有者的公钥...
HTTPS(HyperText Transfer Protocol Secure)是HTTP的安全版本,通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议在客户端与服务器之间建立安全的加密连接。HTTPS的主要目标是保护用户的...
Java中的SSL(Secure Socket Layer)和HTTPS(Hypertext Transfer Protocol Secure)协议是网络通信安全的重要组成部分,尤其在处理敏感信息如用户登录凭证、支付数据等时,它们提供了必要的加密和身份验证机制。...
gsoap wsdl SSL WSDL支持HTTPS SSL协议,已经编译好的wsdl,通过wsdl获取https的wsdl协议没有问题 如果遇到问题,可以用QQ问我,每天在线。 另外本人对gsoad熟悉,欢迎咨询
Tomcat 开启基于 HTTPS 的 SSL 配置 在互联网时代,安全性问题变得越来越重要,为了保护用户的隐私和数据,越来越多的网站开始使用 HTTPS 协议。Tomcat 作为一个流行的 Java Web 服务器,当然也支持 HTTPS 协议。...
oracle WALLET 与SSL 配置oracle的ssl连接 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ora10g.unimassystem.com) (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) (SID_NAME = ora10g) ) ...
1. **HTTPS**:HTTPS是HTTP(超文本传输协议)与SSL/TLS(Transport Layer Security,传输层安全)的结合体,用于在互联网上提供安全通信。HTTPS通过在HTTP协议之上添加一层加密处理,保证了数据在传输过程中的私密...
Java HTTPS SSL 实例详解 一、HTTPS 简介 HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)是以安全为目标的 HTTP 协议,通过在 HTTP 和 TCP 之间添加一个安全层(SSL/TLS),使得数据传输更加...
本文将详细介绍如何使用 CXF 实现 SSL 安全验证,并在此基础上构建 HTTPS 的 Web Service。 ### 步骤一:生成密钥库 (Keystore) 首先,我们需要创建一个密钥库(Keystore),这是一个存储私钥和公钥证书的地方。在...