详解HTTPS

HTTPS其实是有两部分组成:HTTP SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据,下面为大家详细讲解一下HTTPS。

HTTPS简介

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

1. 客户端发起HTTPS请求

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

2. 服务端的配置

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

3. 传送证书

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

4. 客户端解析证书

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

5. 传送加密信息

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

6. 服务段解密信息

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

7. 传输加密后的信息

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

8. 客户端解密信息

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

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/11958.html

(0)
晴川运维晴川运维
上一篇 6天前
下一篇 6天前

相关推荐

  • Linux下安装和使用Dokuwiki

    Dokuwiki作为一个wiki引擎,软件主体十分小巧但功能非常强大而又灵活。它语法简单,为易写性、易读性提供保障。它提供权限管理和安全策略,能够保证信息库的安全性。 需求 Dok…

    Linux系统 2025年6月8日
  • 远程连接Linux服务器具体方法

    如何远程连接linux服务器?作为一款服务器级别的操作系统,linux充分考虑了远程登录的问题,无论是从linux、windows还是其他一些操作系统登录到linux都是非常方便的…

    Linux系统 2025年6月8日
  • Ubuntu 18.04 LTS部署Rsyslog日志服务

    Rsyslog 是一个 syslogd 的多线程增强版。它提供高性能、极好的安全功能和模块化设计。虽然它基于常规的 syslogd,但 rsyslog 已经演变成了一个强大的工具,…

    Linux系统 2025年6月8日
  • Linux下开放指定端口号

    linux系统中控制端口的开启与关闭可以由命令来执行,本篇文章为大家详细讲解一下Linux下开放端口方法。 方式一 CentOS: 1、开启防火墙   &nbs…

    Linux系统 2025年7月5日
  • 使用Shell脚本的方式监控WEB服务状态

    实际工作中我们需要知道部署在服务器上的应用有没有问题,但是人为的操作太麻烦,最简单的方式就是sehll脚本的方式,下面为大家分享一下使用Shell脚本监控WEB服务状态具体方法。 …

    Linux系统 2025年6月30日
  • 讲解一下ES6 async关键字的使用方法

    async 作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行。 async 语法 asy…

    Linux系统 2025年6月12日
  • Linux下XWiki的安装和使用

    XWiki是一个由Java编写的基于LGPL协议发布的开源wiki和应用平台,是一个具有强大的扩展功能(如在页面嵌入脚本),集成插件以及高度模块化架构的专业wiki系统,下面为大家…

    Linux系统 2025年6月8日
  • Linux下安装Docker具体方法

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化,下面为大家分享一下Li…

    Linux系统 2025年6月12日
  • 详解Linux内存、Swap、Cache、Buffer

    在Linux系统中 buffer和cache是内存上分出来的空间,swap分的是磁盘上的空间,下面重点为大家讲解一下Linux内存、Swap、Cache、Buffer。 1. 通过…

    Linux系统 2025年6月15日
  • Github中开源安全工具大全

    本仓库收集的初衷是为向各类企业安全从业人员提供在企业信息安全防护体系建设过程中可以参考的开源安全扫描工具,以期望企业能够利用这些扫描器对自身业务进行自检,从而提高自身业务安全性。 …

    Linux系统 2025年6月8日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注