为什么https要使用证书

什么是https
https不是一种新的协议,只是http的通信接口部分使用了ssl和tsl协议替代,加入了加密、证书、完整性保护的功能。

加密:
共享密钥加密
加密和解密公用一套秘钥,这样就会产生问题,已共享秘钥加密方式必须将秘钥传送给对方,但如果通信被监听,那么秘钥可能会被泄漏产生危险。

公开秘钥加密
公开秘钥加密使用一种非对称加密的算法,使用一对非对称的秘钥,一把叫做共有秘钥,一把叫做私有秘钥,在加密的时候,通信的一方使用共有秘钥进行加密,通信的另一方使用私有秘钥进行解密,利用这种方式不需要发送私有秘钥,也就不存在泄漏的风险了。

https加密方式
因为公开秘钥加密的方式比共享秘钥加密的方式钥消耗cpu资源,https采取了混合加密的方式,来结合两者的优点。

在秘钥交换阶段使用公开加密的方式,之后建立连接后使用共享秘钥加密方式进行加密。

为什么要使用证书:
因为公开加密还存在一些问题就是无法证明公开秘钥的正确性,为了解决这个问题,https采取了有数字证实认证机构和其相关机构颁发的公开秘钥证书。

1.服务器将自己的公开秘钥传到数字证书认证机构
2.数字证书认证机构使用自己的秘钥来对传来的服务器公钥进行加密,并颁发数字证书
3.服务器将传回的公钥证书发送给客户端,客户端使用数字机构颁发的公开秘钥来验证证书的有效性,以及公开秘钥的真实性
4.客户端使用服务器的公开秘钥进行消息加密,后发送给服务器。
5.服务器使用私有秘钥进行解密。

浏览器在安装的时候会内置可信的数字证书机构的共有秘钥。

首先我们说下使用HTTPS的作用,主要有三个:
1.验证服务器或客户端的身份合法
2.报文加密
3.验证数据完整性

HTTPS为了兼顾安全与效率,同时使用了对称加密和非对称加密。数据是被对称加密传输的,对称加密过程需要客户端的一个密钥,为了确保能把该密钥安全传输到服务器端,采用非对称加密对该密钥进行加密传输,总的来说,对数据进行对称加密,对称加密所要使用的密钥通过非对称加密传输。

HTTPS在传输的过程中会涉及到三个密钥:
1、服务器端的公钥和私钥,用来进行非对称加密
2、客户端生成的随机密钥,用来进行对称加密

一个HTTPS请求实际上包含了两次HTTP传输,可以细分为7步。
1、客户端向服务器发起HTTPS请求,携带客户端SSL/TLS信息,服务器端有一个密钥对,即公钥和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,将公钥下发到客户端。
2、客户端收到服务器端的公钥之后,会对公钥进行检查,验证其合法性,如果发现公钥有问题,那么HTTPS传输就无法继续。
公钥的验证:在设备中存储了全球公认的知名CA的公钥。当客户端接收到服务器的数字证书的时候,会通过系统中内置的CA公钥进行解密,如果解密成功说明公钥是有效的,否则就是不受信任的证书。
3、如果公钥合格,那么客户端会生成一个随机值,这个随机值就是用于进行对称加密的密钥,我们将该密钥称之为client key,即客户端密钥,这样在概念上和服务器端的密钥容易进行区分。
然后用服务器的公钥对客户端密钥进行非对称加密,这样客户端密钥就变成密文了,
至此,HTTPS中的第一次HTTP请求结束。

4、客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。
5、服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文。
6、然后服务器将加密后的密文发送给客户端。
7、客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。
这样HTTPS中的第二个HTTP请求结束,
整个HTTPS传输完成。

为什么https要使用证书的更多相关文章

  1. LR录制https协议报证书错误,导航已阻止

    使用IE浏览器录制https协议报证书错误,导航已阻止,修改如下配置文件:

  2. [转]浅谈https\ssl\数字证书

    浅谈https\ssl\数字证书 http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的 ...

  3. Https系列之二:https的SSL证书在服务器端的部署,基于tomcat,spring boot

    Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http ...

  4. Https系列之四:https的SSL证书在Android端基于okhttp,Retrofit的使用

    Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http ...

  5. Https背景与证书在spring boot项目中的使用

    https背景(本人学习参考中觉得不错的几篇文章) https如何解决安全问题 HTTPS 理论基础及其在 Android 中的最佳实践 什么是https 关于https的个人总结 总所周知http是 ...

  6. NET Core Kestrel部署HTTPS使用SSL证书

    ASP.NET Core配置 Kestrel部署HTTPS.现在大部分网站已经部署HTTPS,大家对于安全越来越重视. 今天简单介绍一下ASP.NET Core 部署HTTPS,直接通过配置Kestr ...

  7. windows Apache 环境下配置支持HTTPS的SSL证书

    windows Apache 环境下配置支持HTTPS的SSL证书 1.准备工作 1)在设置Apache + SSL之前, 需要做: 安装Apache, 下载安装Apache时请下载带有SSL版本的A ...

  8. java实现 HTTP/HTTPS请求绕过证书检测代码实现

    java实现 HTTP/HTTPS请求绕过证书检测代码实现 1.开发需求 需要实现在服务端发起HTTP/HTTPS请求,访问其他程序资源. 2.URLConnection和HTTPClient的比较 ...

  9. How to disable SSL certificate checking with Spring RestTemplate?(使用resttemplate访问https时禁用证书检查)

    How to disable SSL certificate checking with Spring RestTemplate?(使用resttemplate访问https时禁用证书检查) **** ...

  10. 用tomcat配置https自签名证书,解决 ios7.1以上系统, 苹果inHouse发布

    用tomcat配置https自签名证书,解决 ios7.1以上系统苹果inHouse发布不能下载安装的问题教程,话说,我其实最讨厌配置某某环境了,因为某一个小环节一旦出错,你的所有工作往往会功亏一篑, ...

随机推荐

  1. 新型DDoS来袭 | 基于STUN协议的DDoS反射攻击分析

    简介: 作为新型反射类型,目前仍存绕过防御可能性. 阿里云安全近期发现利用STUN(Session Traversal Utilities for NAT,NAT会话穿越应用程序)服务发起的DDoS反 ...

  2. 博时基金基于 RocketMQ 的互联网开放平台 Matrix 架构实践

    简介: Matrix 经过一年多的建设,目前已具备多渠道统一接入.第三方生态互联互通.基金特色交易场景化封装等功能特性.Matrix 通过建设有品质.有温度的陪伴,从技术上和体验上,让用户理解风险,理 ...

  3. 时序数据库永远的难关 — 时间线膨胀(高基数 Cardinality)问题的解决方案

    ​简介: 本文主要讨论 influxdb 在遇到写入的数据出现高基数 Cardinality 问题时,一些可行的解决方案. 作者 | 徐建伟 (竹影) 前序 随着移动端发展走向饱和,现在整个 IT 行 ...

  4. [FAQ] uni-app 导航路由切换时如何强制刷新页面?

    使用 this.$forceUpdate() 强制刷新页面. Refer:uni-app自定义导航 Link:https://www.cnblogs.com/farwish/p/13870801.ht ...

  5. vue-cli快速搭建项目的几个文件(二)

    =======ggcss样式======== :root{     --bgColor : #d3252a;     --pinkColor : #ff4e81;     --textColor :  ...

  6. 8.7K+ Star!快速搭建个人在线工具箱

    大家好,我是 Java陈序员. 作为一名 "CV 工程师",每天工作中需要用到各种各样的工具来提高效率. 之前给大家安利过一款离线的开发工具集合,今天给大家推荐一款在线的开发工具箱 ...

  7. AtCoder赛后反思

    先贴上本人主页 ABC347 \(\color{blue}1624\color{red}-24\color{black}=\color{blue}1600\) 蓝名保卫战,极限 1600 C 题还是有 ...

  8. 【GUI软件】小红书评论采集v4.0升级版:自动采集1w多条,含二级评论!

    目录 一.爬取目标 1.1 效果截图 1.2 演示视频 1.3 软件说明 二.代码讲解 2.1 爬虫采集模块 2.2 软件界面模块 2.3 日志模块 三.获取源码及软件 一.爬取目标 您好!我是@马哥 ...

  9. 源码研习 — TVM中的IR设计与技术实现

    一.关键问题 TVM中的 IR 是什么,架构设计上分几层? 解答:TVM的整体结构图如下: 概念上,分为两层:上层为面向前端组网的Relay IR, 下层为面向LLVM的底层 IR. 但从设计实现上, ...

  10. ASP.NET Core如何禁用模型验证(或者从模型状态中移除某些属性)?

    这是一篇4年前的文章:[经验分享]在ASP.NET Core中,如果禁用某个请求的模型验证? 事隔多年,又有网友问到这个问题.我就来重新整理一下,顺便扩展一下之前的解决办法. ===== 这是一个来自 ...