网站SSL安全证书认证的基本过程和原理

techbrood 发表于 2019-08-16 13:33:18

标签: https, ssl, certificate

- +

现在的网站基本上都迁移到了https协议上,https是http协议的安全升级版本。

在原来的http协议下,如果有人截获了你发送给服务器的报文,就能获取里面的信息,比如用户名乃至密码。

所以http协议单纯从传输层面看是不安全的,其信息安全性得依赖额外的应用层面来保证。

那么如何保证信息交互的安全性呢,一般是通过密钥对的方式,也就是数学算法上可以把一个密钥分成2个部分,

一半是公钥,一半是私钥。公钥加密的信息必须用私钥来解密,反之亦然。

这样即使你发送的信息被黑客截获,在没有私钥的情况下,仍然不能解密你的信息,从而保证了信息传输的安全。

要建立一个https网站,首先需要申请一个安全证书,向证书颁发机构提交一个CSR(证书)文件,这个文件可以通过网站在线生成也可以在服务器上通过命令行(linux上)或者一些界面工具(windows上)来生成。

什么是CSR文件?

CSR全名是Certificate Signing Request,也就是证书签名请求,在生成这个csr文件的时候,通常会同时生成一个key文件,csr文件包含了公钥和申请人的基本信息(比如域名、公司和地址信息等),key则包含了私钥。key文件自己妥善保存不要交给任何人,而把csr文件提交给CA(发证机构),CA使用你提交的相关信息生成证书(通常是一个pem编码格式的文件)。然后你可以在web服务器上安装证书(安装时需要用到key文件)。

HTTPS请求过程

证书安装好后,客户端通过https访问你的网站,其过程如下:

1. 客户端向服务器发送访问请求;

2. 服务器将证书发送给客户端;

3. 客户端开始对证书进行认证:

* 在证书中获取证书的颁发机构字段

* 在系统证书目录下寻找,颁发机构的根证书,如果找到则通过,如果没有找到,给用户弹出提示,由用户选择是否信任该证书

* 验证证书是否过期,证书中的服务器域名字段是否和我们实际访问的服务器域名一致,通过计算证书hash值判断是否被篡改。

4. 证书认证通过后,客户端使用协商好(过程略)的加密方案生成随机码,用作通信过程中的密码,使用服务端证书中获取到的公钥进行加密并发送给服务端;

5. 服务器收到后,使用证书对应的私钥进行解密,获取到对称加密的通信密码;

6. 使用对称加密通信。

HTTPS工作在第几层?

回答这个问题得限定网络模型上下文,如果是OSI模型,那么HTTPS工作在TOP5以上(会话层、表达层和应用层,区分不是那么明确),如果是TCP/IP模型,那么显然HTTPS也是应用层协议。原则上HTTPS是应用层的协议,只不过,在使用HTTPS时,实际上是建立了一个SSL(TLS)连接,把HTTP应用层的数据通过SSL来安全传输,所以从网络传输的角度而言,它是工作在会话和表达层,只是在网络两端会有应用层的加解密处理。

possitive(3) views2008 comments0

发送私信

最新评论

请先 登录 再评论.
相关文章
  • 增强现实引擎ARToolKit工作原理简介

    ARToolkit是一个基于CV(计算机视觉)和Marker(标识)的开源增强现实引擎。其具备如下功能特性:A. 鲁棒跟踪,包括基于标记的跟踪与基于特征的跟踪;

  • 踏得网精选2016年度10大最佳HTML5动画

    踏得网精选2016年度最酷最新的HTML5动画集,评选标准为:创意新颖度+实现技术难度+趣味程度。使用一些在线H5生成工具的作品,因其主要使用图片和CSS3套路动画,...

  • Blender2.7给平面模型添加纹理贴图

    在blender中给模型添加纹理,需要有2个步骤:首先在对象属性栏中给该对象添加材料和纹理建立纹理映射添加材料和纹理这是常见操作,略过步骤。但是仅仅这样操作,...

  • CSS3特性查询(Feature Query: @supports)功能简介

    这是2017年不能不了解和学习的一个CSS新特性,非常实用,考虑到现实世界浏览器的复杂性,该特性本应该先于其他新特性出来。我们已经知道使用媒体查询(Media Que...

  • JavaScript语言多编程范式简介

    和C++等语言类似,JS支持多范式(paradigms)编程。我们常常混合这些范式来完成一些大型Web项目。JS支持3种编程范式:命令式、面向对象和函数式。命令式(Imperative JavaScript)命令式就是简单的从上而下完成任务,流水账过程式编码风格:function

  • HTTP1.1协议现状、问题和解决方案

    HTTP的现状最早的HTTP协议非常简单,只能用来传送文本,方法也只有GET,后来逐步发展到1.1,能够支持多种MIME格式数据(如文本、文件),支持GET,POST,HEAD,OPTI...

  • CSS3图片混合(Blend)效果及其参考计算公式一览表

    在Photoshop软件中,混合是将两个图层的色彩值进行合成,从而创造出大量的效果。在这些效果的背后实际是一些简单的数学公式在起作用。下面所介绍的公式仅适用于R...

  • WebGL入门教程4 - 使用纹理贴图(Texture Map)

    3D建模和纹理贴图的关系就好比人体和皮肤(或着装)的关系,3D建模用来处理空间属性,而贴图适合用来处理细腻的表面属性。如果不使用贴图,而想在表面达到足够的...

  • 浏览器控制台报JS脚本执行错误:Module is not defined

    现在JS分成了两个分支,一部分在服务器端发展如NodeJS,一部分是传统的浏览器运行环境。
    有些插件在编写JS代码时,是针对Node编写的,所以直接在浏览器中使...

  • WebGL入门教程1 - 3D绘图基础知识

    现代浏览器努力使得Web用户体验更为丰富,而WebGL正处于这样的技术生态系统的中心位置。其应用范围覆盖在线游戏、大数据可视化、计算机辅助设计、虚拟现实以及数...

  • 如何使用CSS3实现一个3D商品标签

    使用3D缎带形状的标签是常见的一个设计模式,用在商品折扣、文章标题或网站推荐信息上,来突出显示重点内容,吸引用户视觉焦点。实现的方法有2种,一种是使用背...

  • 更多...