图解https协议

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。

  HTTPS简介

  HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看下图。

  1. 客户端发起HTTPS请求

  这个没什么好说的,就是用户在浏览器里输入一个https网址,然后连接到server的443端口。

  2. 服务端的配置

  采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。这套证书其实就是一对公钥和私钥。如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

  3. 传送证书

  这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

  4. 客户端解析证书

  这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值。然后用证书对该随机值进行加密。就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

  5. 传送加密信息

  这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

  6. 服务段解密信息

  服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

  7. 传输加密后的信息

  这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。

  8. 客户端解密信息

  客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容。整个过程第三方即使监听到了数据,也束手无策。

时间: 2024-08-24 02:35:09

图解https协议的相关文章

【JAVA秒会技术之秒懂HTTPS】白话图解HTTPS原理

白话图解HTTPS原理         [前言]最近看过几篇文章,内容是关于"全民HTTPS"的.为什么HTTPS,突然会受到如此多业内人士的青睐呢?HTTPS究竟是什么呢?它与HTTP又有怎样的区别呢?     带着这个问题,我查看了很多网上的资料,但是太多的专业词汇,让我感到头疼,很难理解.按我个人的认知,这个世界上根本不存在任何高深的道理,尤其是西方讲究科学性的思维,再高深,也不可能高深过中国传统思想中的八个字"只可意会,不可言传",完全不该诉你,让你自己去领

大型网站的 HTTPS 实践(一): HTTPS 协议和原理

大型网站的 HTTPS 实践(一): HTTPS 协议和原理 1 前言 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 HTTP 请求跳转成 HTTPS.本文重点介绍 HTTPS 协议, 并简单介绍部署全站 HTTPS 的意义. 2 HTTPS 协议概述 HTTPS 可以认为是 HTTP + TLS.HTTP 协议大家耳熟能详了,目前大部分 WEB 应用和网站都是使用 HTTP 协议传输的. TLS 是传输层加密协议,它的前身是 SSL 协议,最早由 netscape 公司于 199

HTTPS协议说明

HTTPS协议说明 基本现在最安全的网络连接就是使用https了,http协议有几个不安全的地方: 传输信息是明文的. -- http的传输信息是明文的,基本网络劫持下就束手就擒了. 不能防止篡改. -- 在网络传输层面是无法防止第三方截取请求,篡改请求,再发送给服务器的. 其实从互联网已开始,网络传输的加密协议就有人在研究了. 基本想法就是把通信双方的传输信息使用加密算法加密起来.这样就可以保证两边的通信可以得到保护. 这里的加密方法基本有两种,对称加密或者非对称加密.如果使用非对称加密算法,

HTTPS协议的简单介绍

貌似最近百度的主页弄成了https.国内越来越多的网站也在https化. 大学学的信息安全,这块知识不能生疏啊,果断整理下. 如何区分HTTP和HTTPS: 对于很多人来说,如何鉴别HTTPS比知道HTTP更为重要.特别是涉及资金交易这类的操作时,尤其要注意是否使用HTTPS协议,证书是否有效.相对而言,证书有效的网站通常不会是钓鱼网站.目前,证书伪造还几乎不可能,所以这块是可信的. 因此,如何辨别网站是否为HTTPS,是十分重要的.事实上,浏览器总是很清晰的标识出来了.通常都在URL栏里.认准

https协议下载文件。。。。。。

问题描述 https协议下载文件...... 如何使用https协议下载文件?求代码?就是想从客户端下载文件到服务端,使用https协议 解决方案 https协议文件加密

RSA原理及其在HTTPS协议中的应用

在RSA公私钥体系中,存在满足以下关系的三个自然数e, d, n: 其中,n是两个大质数p, q的乘积,当n为2048-bit时,p, q均在1024-bit左右. 输入数字a的加密过程 将b还原为a的解密过程 由于篇幅所限,我在这里略去对RSA加解密的数学背景知识的介绍.对这部分知识有疑问的同学请参考这个页面. (e, n)作为公钥发放给使用者,(d, n)则作为私钥保留在服务器端.在HTTPS通信过程中,服务器只会传递公钥,而私钥永远不会被传输,并且,使用公钥加密的信息只能用私钥才能解开,而

java后台请求https协议返回xml怎么解决?

问题描述 java后台请求https协议返回xml怎么解决? 我在做一个跟第三方支付对接,现在做到了查询支付结果这里,它们给的接口是异步请求他们的地址,但是他们的协议是https的,直接ajax请求没有权限.后台我又在后台请求,结果报ssl错误,我的jdk版本是1.7_11版本的,tomcat5.5的,请求地址是https://payment.dinpay.com/MQueryOrder.do 返回一段xml,求高手帮我在后台请求这个地址,然后把这个xml以字符串的形式返回,非常感谢

解决alitomcat中无法获得https协议的问题

事件: 客户反馈,为什么配置https请求,使用request.getScheme().request.getServerPort(),后台获取访问协议和端口的时候还是获取的http和80.. 用户架构: CDN+SLB+EDAS应用 其中 CDN使用443端口回源 SLB配置安全证书使用HTTPS公网IP访问 EDAS使用Alitomcat,server.xml配置 < Valve className="org.apache.catalina.valves.RemoteIpValve&q

如何使用被信任的证书来配置SLB HTTPS协议,使slb站点支持ssl

阿里云的SLB已经原生支持HTTPS协议了,不用在像之前那样配置TCP协议的443来实现,支持的方式也是将证书托管到SLB服务器上去.这里的可以使用自签名的不信任证书,也可使用CA认证的可信证书.这里我们使用免费的ssl证书来测试一下. 首先需要到一些证书颁发机构去申请操作系统信任的证书,这类证书一般都是需要按时间进行付费.这里我们使用一家免费证书来测试,申请过程也比较简单,我们申请一个ok.cnhejia.cn域名的证书(一个证书可以对应多个域名或者泛域名 )     请完毕后会给出证书下载连