HTTPS 原理及部署

HTTP 和 HTTPS

如果你之前了解过计算机网络,那么你一定听说过 HTTP 协议。HTTP 协议的全称为 HyperText Transfer Protocol,即超文本传输协议。

HTTP 协议位于 OSI 七层网络模型中的第七层——应用层。Web 服务器上的所有资源的传输都遵守该协议,用户通过浏览器进行资源的查看和下载。

RFC 2616 定义了 HTTP 1.1。

简单回顾一下 HTTP 协议的内容,主要由三部分组成:

  • 起始行
  • 首部
  • 实体

HTTP 请求

请求

HTTP 响应

响应

回到我们的正题 HTTPS,其比 HTTP 多了一个 S。S 即 Safe,安全,我们可以知道 HTTPS 基于 HTTP,但是比其更加安全。

http和https

事实上是 HTTPS 是在原先的 HTTP 中加入了 SSL/TLS。SSL/TLS 是指一个安全的协议。SSL 是 NetScape 公司对这个安全协议的称呼。而 TLS 是 ISOC 组织将这个安全协议标准化后的称呼。所以两者是指一个东西,现在多称呼 TLS,传输层安全协议(Transport Layer Security)。

HTTPS 的特点

我们知道任何一样事物不会无缘无故出现,也不会无缘无故消失。

之所以会出现 HTTPS,主要是由于安全问题。在之前博客中,我提到了 Web 传输过程中的问题,正是由于 HTTP 协议的不足所造成的。

普通的 HTTP 通信,其内容是不加密的,可能遇到这些问题:

  • 内容窃听
  • 内容篡改
  • 请求冒充

而 HTTPS 正是用来解决这些问题的:

  • 所有信息都是加密传播,第三方无法窃听
  • 具有校验机制,一旦被篡改,通信双方会立刻发现
  • 配备身份证书,防止身份被冒充

HTTPS 的原理

当我们访问一个网站时,如果该网站使用的是 HTTPS 协议,那么就先会经过 TLS 握手。

TLS握手

  1. 客服端(即浏览器)向服务器(访问网站)发送一次请求:
    • 支持的版本协议,如 TLS 1.0
    • 一个随机码,用于“对话密钥”
    • 支持的加密方法,如 RSA 公钥加密
    • 支持的压缩方法
  2. 服务器回应客户端:
    • 确认加密协议
    • 一个随机码,用于“对话密钥”
    • 确认加密方法
    • 服务器证书
  3. 客户端回应服务器:
    • 一个随机码,用服务器公钥加密,防止被窃听
    • 编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送
    • 客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供服务器校验
  4. 服务器回应客服端:
    • 编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送
    • 服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供客户端校验

在 TLS 握手过程中,主要经历上面这四个步骤。HTTPS 与 HTTP 的不同在于后者内容采用明文传输,而前者内容采用加密传输。传输内容的加密方法采用的是对称加密,速度快。

为了保证对称加密密钥的安全,HTTPS 对对称加密密钥的交换采用 RSA 非对称加密。非对称加密有公钥和私钥,公钥可以公开透明,让任何人知道,但私钥一定要保密。

HTTPS 的应用

HTTPS 最直接的应用就是给网站加上一个小绿锁。HTTPS 证书申请有两种,免费和收费的。

SSL For Free 这个网站可以免费获取数字证书,有效时间 90 天。时间到了,那你必须重新获取一个证书。

在获取证书后,如何配置我们的服务器呢?在 SSL For Free 网站的下方我们可以看到下图区域,根据我们的服务器平台,点击对应链接即可。
https教程

如果你是阿里云用户,它也提供了一个入口,我们通过其后台也可以免费获取数字证书。

阿里云TLS
点击单域名数字证书即可获取免费证书,其证书的有效时间为一年

阿里云也提供了配置证书的教程,如下图所示:

https教程


参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值