前言

HTTPS 通过 TLS/SSL 协议实现 HTTP 的加密安全传输。而 TLS/SSL 协议主要依赖三种算法实现安全功能:

  • 非对称加密:实现身份认证和密钥协商
  • 对称加密:对数据加密
  • 散列函数:验证信息的完整性

对称加密和非对称加密以及签名可以参考 这篇文档

HTTPS 使用的是 对称加密和非对称加密 结合的方式。具体的做法是:
发送信息的一方(客户端)使用服务端的公钥加密 "对称密钥",服务端使用私钥解密拿到 "对称密钥"。这样可以确保 "对称密钥" 的传输过程是安全的,后续就可以使用 “对称密钥” 进行数据加密传输。

数字证书认证的具体流程

  1. 向第三方机构 CA 提交服务器公钥、组织信息、个人信息(域名)等信息并申请认证。(实际操作中,往往需要提供私钥,它会自动从私钥中提取公钥)
  2. CA 通过多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等。如信息审核通过,CA 会向申请者签发认证文件-证书。
    证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构 CA 的信息、有效时间、证书序列号等信息的明文,同时包含一个签名。 其中签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用 CA 的私钥对信息摘要进行加密,密文即签名。
  3. 客户端向服务端发出请求时,服务端返回证书文件。
    客户端读取证书中的相关的明文信息,采用相同的散列函数计算得到信息摘要,然后,利用对应 CA 的公钥解密签名数据,对比证书的信息摘要,如果一致,则可以确认证书的合法性。
    客户端还会验证证书相关的域名信息、有效时间等信息; 客户端会内置信任 CA 的证书信息(包含公钥),如果 CA 不被信任,则找不到对应 CA 的证书,证书也会被判定非法。

HTTPS 工作流程


1.客户端发起一个 HTTPS 请求。
2.服务端把配置好的证书返回给客户端。
3.客户端验证证书:比如是否在有效期内,证书的用途是不是匹配 Client 请求的站点,是不是在 CRL 吊销列表里面,它的上一级证书是否有效等
4.客户端使用伪随机数生成对称密钥,并通过证书里服务器的公钥进行加密。后续使用该对称密钥进行传输信息。
5.服务端使用自己的私钥解密这个消息,得到对称密钥。至此,客户端和服务端都持有了相同的对称密钥。
6.服务端使用对称密钥加密“明文内容 A”,发送给客户端。
7.客户端使用对称密钥解密响应的密文,得到“明文内容 A”。
8.客户端再次发起 HTTPS 的请求,使用对称密钥加密请求的“明文内容 B”,然后服务器使用对称密钥解密密文,得到“明文内容 B”。
以此保持加密通信。

参考文档:https://github.com/ljianshu/Blog/issues/50

HTTPS 证书认证流程相关推荐

  1. https证书申请流程和简介

    HTTPS证书是什么 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安 ...

  2. 域名申请·多域名SSL证书申请·SSL证书认证流程·CAA解析记录添加

    环境:VPS:CentOS8 1.申请域名 通过阿里云申请一个域名就好,博主申请了个人域名.top,第一年6元 2.添加一条IPV4的DNS解析记录 阿里云-控制台-域名解析-解析设置-添加新纪录 这 ...

  3. 简述 HTTPS 证书认证

    前言 在我们不论是对服务器还是客户端进行 HTTPS 进行配置时,首先需要准备好的肯定是相关证书文件了,而证书文件是什么又从哪里可以获取到相关证书,并且它们又是什么关系,最后它们怎么在通讯中起作用呢? ...

  4. Nginx 配置https证书认证

    一.什么是SSL证书 SL证书全程:SSL安全通道(Secure socket layer(SSL).该安全协议主要用来提供对用户和服务器的认证:对传送的数据进行加密和隐藏:确保数据在传送中不被改变, ...

  5. HTTPS证书认证过程(CA)

    CA证书的组成主要包含了公钥.公钥拥有者名称.CA 的数字签名.有效期.授权中心名称.证书序列号等信息. 证书是怎么样创建的呢? 首先服务器生成自己的公钥和私钥,公钥发给CA机构. CA机构有一套自己 ...

  6. X509证书认证流程介绍

    X509证书介绍 X.509 是由国际电信联盟(ITU-T)制定的数字证书标准,相信这是人尽皆知的了,目前X.509证书据我所知有三个版本,.net中使用的是x.509-2,X.509-2 版引入了主 ...

  7. HTTPS 的认证流程

    渐进式的描述 HTTPS 协议的传输过程. 铺垫知识 非对称加密 公钥(Public Key) 与 私钥(Private Key)是通过加密算法得到的一个密匙对.公钥是可公开的,私钥是需要私有的.公钥 ...

  8. 百度地图--证书认证问题

    百度地图在局域网内使用HTTPS协议证书认证失败解决方法 问题原因 根据甲方客户要求,需要将项目之前的HTTP协议改为安全的HTTPS协议,且将之前应用的离线百度地图,改为在线百度地图. HTTPS证 ...

  9. https 证书工具 Letsencrypt 简单教程

    https取代http是大势所趋,https的好处本文不在赘述,很多公司和机构都在推进这一进程,Apple公司甚至规定,iOS上的App应用必须使用https.因此,正是受到Apple的限制,我们的站 ...

  10. 威联通nas的ipv4+ipv6双栈https证书ddns折腾记录

    IPV4+IPV6公网DDNS搭配https 背景 起因 目标 方案 过程 光猫配置 路由器配置 Let's Encrypt证书申请 DDNS配置 301永久重定向 证书文件使用 nginx反向代理 ...

最新文章

  1. 科学家利用脑机接口让患者正常发声
  2. 文本类文件与VS关联-实践
  3. windows wim
  4. 在VS2010调试javascript程序时的各种问题
  5. C++11: std::function<void()> func
  6. 室内空气流动原理图_新风系统的工作原理是什么 新风系统各部件的用途
  7. 【目标检测】cvpr21_Sparse R-CNN: End-to-End Object Detection with Learnable Proposals
  8. Dart核心语言基础const关键字与final关键字的区别
  9. MATLAB学习笔记(十四)
  10. VMware ESXi/ESX 的内部版本号和版本 (2143832)-2020-10-27更新
  11. 稳定土厂拌设备控制系统-基本介绍(图)
  12. 《走出软件作坊》流水账
  13. php 实现网站克隆,自己写的php curl库实现整站克隆功能
  14. RF 操作页面滚动条上下滚动
  15. Excel如何将一列数据转为一行?
  16. 亿豪的python学习 day14
  17. arduino点阵声音频谱_参赛-使用Arduino制作32频段音频(音乐)频谱分析仪
  18. NLP工具——doccano标注系统自动标注功能使用
  19. OBS Studio 27.0.1版本编译
  20. 10.敏捷估计与规划——Financial Prioritization笔记

热门文章

  1. Stratified k-foldTimeSeriesSplit
  2. Tivoli TSM产品功能详述
  3. 3dmax和python做3d动画_3D动画和影视建模,用什么软件或者多个什么软件结合做比较好?...
  4. Vue3报错:Extraneous non-props attributes (style) were passed to component but could not be automatical
  5. 关于PAT报错:warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result
  6. windows的IPAM无法独立安装,需要域环境才能使用
  7. 数据整理—dplyr包(mutate系列)
  8. LaTeX字符加的各种帽子
  9. 计算机考试多少个小时,考驾照科一电脑刷几个小时
  10. 华为S5700交换机升级记录