https,http和ssl的关系
https,http和ssl这三者是什么关系呢?
http是超文本传输协议,浏览器利用这一协议就可以访问各种网站了。
ssl指Secure Sockets Layer 安全套接层,是一种保证网络数据传输安全和完整的安全协议。
https是在http规则的基础上又加了一层加密协议的超文本传输协议,s 指代 Secure Socket Layer 安全套接字层,
http传数据大致是这样的: http协议封装好的数据包 -> tcp/ip -> 服务器 , 缺点:数据包中途可能被窃取或者被篡改
https大致流程是这样 : http协议封装好的数据包 + ssl加密 -> tcp/ip -> 服务器 缺点:虽然安全,但是开销变大了,传输速度也变慢了。
如果把http传输比喻成一个数据管道的话,ssl就是这个管道的特殊防护层,这个ssl不仅可以保护http传输,也可以用在其他数据加密传输.
https又是怎么保证数据的加密传输的呢?
首先再正式发送数据前,浏览器如果发现是https传输要进行必要的准备工作才开始发送,大致分为以下几步。
1, 浏览器把协议版本号,支持的加密算法 生成的随机数A发送给服务器。
2, 服务器接到客户端发送过来的加密算法后,查看自身支持的加密算法,确定双方后边使用哪种加密算法,然后把该算法和数字证书以及生成的随机数B发给客户端。
3, 客户端接到服务器发送过来的证数后,得到证书里的非对称加密的公钥D,然后又生成一个随机数C,把C和D加密后得到的一个字符串E发给服务器。
4, 服务器接到这个字符串E后,用自身的私钥解密得到C,这样服务器就集齐了 A,B,C,然后利用ABC生成对话加密密钥 , 因为客户端也得到了A,B,C 这样双方都能进行加密解密了,至于加密解密的算法就是前面双方交换加密方法表时约定的加密算法。
所以可以看出ABC中,只有C是极难被别人得到的,这样保证了安全性,同时这个过程前面用到了非对称加密,一旦加密密钥确定,后面其实用的都是对称加密了。
https,http和ssl的关系的更多相关文章
- TLS与SSL之间关系——SSL已经被IEFT组织废弃,你可以简单认为TLS是SSL的加强版
TLS与SSL之间关系 原文地址:SSL vs. TLS - What's the Difference? from:https://juejin.im/post/5b213a0ae51d4506d4 ...
- https 自签名SSL证书
介绍 TLS或称传输层安全性,及其前身SSL(代表安全套接字层)是用于将正常流量包装在受保护的加密包装中的Web协议. 使用这种技术,服务器可以在服务器和客户端之间安全地发送流量,而不会被外部各方拦截 ...
- 让网站永久拥有HTTPS - 申请免费SSL证书并自动续期 Let’s Encrypt
让网站永久拥有HTTPS - 申请免费SSL证书并自动续期 Let’s Encrypt 为什么要用HTTPS 网站没有使用HTTPS的时候,浏览器一般会报不安全,而且在别人访问这个网站的时候,很有可 ...
- 配置Tomcat使用https协议(配置SSL协议)
配置Tomcat使用https协议(配置SSL协议) 2014-01-20 16:38 58915人阅读 评论(3) 收藏 举报 转载地址:http://ln-ydc.iteye.com/blog/1 ...
- Requests对HTTPS请求验证SSL证书
SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape Communication公司设计开发.该安全协议主 ...
- http跳转https方法:百度云如何让http自动跳转到https【免费SSL证书使用FAQ】
之前的一篇文章已经给大家提供了免费SSL证书的申请方法,这一篇文章是告诉大家在使用免费的SSL证书时可能会遇到的问题[怎么让http自动跳转到https以及http与https同时使用]的解决方法. ...
- 各种HTTPS站点的SSL证书 ,扩展SSL证书,密钥交换和身份验证机制汇总
各种HTTPS站点的SSL证书 ,扩展SSL证书,密钥交换和身份验证机制汇总 一份常见的 HTTPS 站点使用的证书和数据加密技术列表,便于需要时比较参考,将持续加入新的 HTTP 站点,这里给出的信 ...
- requests发送HTTPS请求(处理SSL证书验证)
1.SSL是什么,为什么发送HTTPS请求时需要证书验证? 1.1 SSL:安全套接字层.是为了解决HTTP协议是明文,避免传输的数据被窃取,篡改,劫持等. 1.2 TSL:Transport Lay ...
- https证书/即SSL数字证书申请途径和流程
国际CA机构GlobalSign中国 数字证书颁发中心网站:http://cn.globalsign.com https证书即SSL数字证书,是广泛用 于网站通讯加密传输的解决方案,是提供通信保 ...
随机推荐
- 如何优雅的使用Objects.requireNonNull(T obj, String message)定制你的NPE异常
IDEA中习惯跟踪源码实现逻辑,多次碰到Objects.requireNonNull(T obj)这个方法,改方法主要用于提早判断对象是否为空,以便更早的抛出NPE 平时小组开发中强调程序健壮性,不允 ...
- 面试总结【css篇】- css3新增特性
1.css3中的关键帧 @keyframes规则通过在动画序列中定义关键帧(或waypoints)的样式来控制CSS动画序列中的中间步骤.这 比转换更能控制动画序列的中间步骤. @keyframes ...
- 01、requests 基本使用
requests模块的基本使用 基于网络请求的模块. 环境的安装:pip install requests 作用:模拟浏览器发起请求 分析requests的编码流程: 1.指定url 2.发起了请求 ...
- u-boot 的介绍及系统结构
u-boot 介绍 Uboot 是德国 DENX 小组的开发用于多种嵌入式 CPU 的 bootloader 程序, UBoot 不仅仅支持嵌入式 Linux 系统的引导,当前,它还支持 Net ...
- 7_API调用
0 查看 kifastcallentry 里面具体怎么调用 首先是 切换了 fs 为kpcr的选择子 然后 构造了 一个trap frame(保存3环-->0环 切换的上下文:如果0环不使用就没 ...
- CTR预估的常用方法
1.CTR CTR预估是对每次广告的点击情况做出预测,预测用户是点击还是不点击. CTR预估和很多因素相关,比如历史点击率.广告位置.时间.用户等. CTR预估模型就是综合考虑各种因素.特征,在大量历 ...
- element-ui 框架中使用 NavMenu 导航菜单组件时,点击一个子菜单会出现多个子菜单同时展开或折叠?
我在使用 elment-ui 框架的导航组件时,直接粘贴复制了官网上 (http://element-ui.cn/#/zh-CN/component/menu)的例子不会出错,但是当我将他们转化为动态 ...
- linux 部署脚本
shell 脚本 #!/bin/bash #设置jdk环境 export JAVA_HOME=/usr/java/jdk1.8.0_45 export JRE_HOME=$JAVA_HOME/jre ...
- 如何查看redis占用内存大小
redis缓存固然高效,可是它会占用我们系统中宝贵的内存资源,特别是当我们的项目运行了一段时间后,我们需要看一下redis占用了多少内存,那么可以用“info”命令查看. 执行info命令后,找到Me ...
- ON_EVENT 报错
错误提示: error C2440: 'initializing' : cannot convert from 'const wchar_t [1]' to 'UINT' error C2440: ' ...