https的基本原理

更新日期: 2019-07-27 阅读: 2.9k 标签: 原理

HTTPS = HTTP + TLS/SSL,简单理解 HTTPS 其实就是在 HTTP 上面加多了一层安全层。HTTP 可以是 Http2.0 也可以是 Http1.1,不过现在 Http2.0 是强制要求使用 Https 的。


HTTPS 基本原理

首先需要一个第三方认证机构(CA认证),确保公钥的合法性(即证书,不合法的证书浏览器会警告),然后利用非对称加密(公钥私钥)方式加密并传输共享密钥到服务器,可以确保共享密钥无法被拦截被获取到(共享密钥被公钥加密了,只有对应的私钥才能解密,服务器有私钥),最终的客户端和服务端 HTTP 传输就是使用共享秘钥加密进行通信。


HTTPS 流程图

首先,我们先看下HTTPS 的整个流程。



HTTPS 是如何确保安全的?

  • 使用非对称密钥(即公钥私钥))和对称密钥)(即共享密钥)相结合

    通过公钥私钥的方式,避免了共享密钥发送途中被第三方拦截获取密钥的安全问题。

    通过公钥和私钥加密建立保护层(即 SSL 保护层),后续的 Http 请求就会使用共享密钥进行加密通信(共享的密钥已经被 SSL 保护起来了,外面无法拦截到),即所谓的安全层。

    所以建立了安全层后,即使 HTTP 报文被拦截到,也无法解密。

  • CA 认证

    由于公钥这个环节是公开的,存在被替换的风险,所以就有了第三方证书认证公司(CA认证),浏览器通过判断证书是否有效。

    一般系统或者浏览器都会内置信任的根证书(这些 CA 组织都是非常可信的),浏览器可以根据这个根证书判断网站的证书是否合法。

    证书如果不合法,那么久浏览器就会警告,都是不给访问的证书不合法的网站,除非用户跳过这个警告。


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/4957

相关推荐

React Native之原理浅析

讲React Native之前,了解JavaScriptCore会有帮助,也是必要的。React Native的核心驱动力就来自于JS Engine. 你写的所有JS和JSX代码都会被JS Engine来执行, 没有JS Engine的参与,你是无法享受ReactJS给原生应用开发带来的便利的

连v-show都不会你还敢说熟悉 Vue 原理?

Vue 作为最主流的前端框架,中文资料齐全、入门简单、生态活跃,可以说是工作中最常用的,如今对 Vue 原理的熟悉基本上是简历的标配了。之前参与了部分 2019 校园招聘的面试工作,发现很多简历上都写了:

Angular ZoneJS 原理

如果你阅读过关于Angular 2变化检测的资料,那么你很可能听说过zone。Zone是一个从Dart中引入的特性并被Angular 2内部用来判断是否应该触发变化检测

js中flat方法的实现原理

Array.prototype.flat()在Array的显示原型下有一个flat方法,可以将多维数组,降维,传的参数是多少就降多少维,自定义flat的步骤1、第一步是类型判断,需要判断当前调用方法的this是否为一个数组,若不是数组则返回undefined

JavaScript 中的函数式编程原理

做了一些研究,我发现了函数式编程概念,如不变性和纯函数。 这些概念使你能够构建无副作用的功能,而函数式编程的一些优点,也使得系统变得更加容易维护。我将通过 JavaScript 中的大量代码示例向您详细介绍函数式编程和一些重要概念。

理解Vue的Watch原理

watch 是由用户定义的数据监听,当监听的属性发生改变就会触发回调,这项配置在业务中是很常用。在面试时,也是必问知识点,一般会用作和 computed 进行比较。

写一个简单的vue-router来剖析原理

随着前端业务的发展, 我们一般在写一个较为大型的vue项目时候,会使用到vue-router,来根据指定的url或者hash来进行内容的分发,可以达到不像服务端发送请求,就完成页面内容的切换,能够减少像服务器发送的请求

CSS定位之BFC背后的神奇原理

BFC已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用处(如清浮动,防止 margin 重叠等)。BFC直译为\"块级格式化上下文\"。它是一个独立的渲染区域,只有Block-level box参与

前端手写代码原理实现

现在的前端门槛越来越高,不再是只会写写页面那么简单。模块化、自动化、跨端开发等逐渐成为要求,但是这些都需要建立在我们牢固的基础之上。不管框架和模式怎么变,把基础原理打牢才能快速适应市场的变化。下面介绍一些常用的源码实现

关于vue过滤器的原理解析

Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!