网站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(19) views4707 comments0

发送私信

最新评论

请先 登录 再评论.
相关文章
  • OpenGL/WebGL顶点坐标变换过程简介

    世界坐标是按照笛卡尔坐标系定义出来的绝对坐标系,下面的各种坐标系都建立在世界坐标的基础上。对象坐标系对象被应用于任何...

  • 常用光照类型基本概念工作原理及其计算公式

    在三维场景中,原理上物体的渲染效果取决于光照与物体表面的相互作用,对于渲染程序而言,可以通过把一些数学公式应用于像素着色来实现,从而模拟出真实生活中的...

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

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

  • CSS3人行走动作图解和动画实现

    对于人类而言,行走是一种很自然的想要前进并防止跌倒的一组动作重复。大部分人1岁就学会了走路,但至此以后的几十年间,或许我们从来没留意过自己行走姿势。当...

  • CSS3弹性布局弹性流(flex-flow)属性详解和实例

    弹性布局是CSS3引入的强大的布局方式,用来替代以前Web开发人员使用的一些复杂而易错hacks方法(如使用float进行类似流式布局)。其中flex-flow是flex-direction...

  • Three.js 对象局部坐标转换为世界坐标

    在Three.js中进行顶点几何计算时,一个需要注意的地方是,需要统一坐标系。比如你通过Three.js提供的API创建了一个球体网孔对象,那么默认情况下,各网孔顶点的...

  • IE各版本CSS Hack(兼容性处理)语法速查表

    为了兼容IE各个版本,需要在CSS中添加额外的代码,比如以前常用的_width。之所以工作,是因为浏览器会忽略不能解析的样式规则,因此举个例子来说,把_width写在w...

  • 如何使用CSS3实现一个平滑的3D文本标题

    要实现3D文本,基本上有3种方法:1. 使用CSS3的投影滤镜(filter: drop-shadow)2. 使用3d建模和CSS3 3d变换来实现(最真实)3. 使用CSS3 text-shadow属性来实现...

  • SVG过滤器feColorMatrix矩阵变换效果用法详解

    在计算机图形学(数学)中,矩阵乘法可用于把空间向量进行几何变换。我们可以把颜色的值(RGBA)表示成一个四维空间向量:color = (r, g, b, a);那么就可以应用...

  • 如何使用纯CSS3实现一个3D泡沫

    要实现一个逼真的泡沫,涉及到比较复杂的光学/物理学知识。我们这里先简化下问题,实现一个相对简单而足够实用的泡沫元素。我们可以把基础的泡沫元素应用在很多场景中,比如水景、泡咖啡、啤酒甚至火焰特效中。泡沫首先是一个圆形元素.bubble

  • div 、section 、article的区别和使用场景

    div 、section 、article的区别和使用场景
    主要区别,以及适用场合如下:
    1、div在html早期版本就支持了,section和article是html5提出的两个雨衣话标...

  • 在PHP网页程序中执行Sass/Compass命令

    我们需要在wow云开发平台支持sass/compass等预编译样式语言,为此我们首先尝试了scssphp扩展,但是在支持最新语法上,经常会出现异常。所以我们采用了代理的方式...

  • 更多...