大家好,我是非凡,不知道各位朋友在访问某些网站时,是否遇到过浏览器提示站点不安全的情况呢?

这是因为该站点仍在使用传统的 HTTP 协议,而这种协议的数据传输是明文的,并未经过加密和身份验证,极大增加了用户个人隐私信息泄露的风险。

在当今这个数字化时代,网络安全已然成为每个网站不可或缺的一环。随着越来越多的用户意识到在线隐私的重要性,HTTPS 这一安全的协议正逐渐成为网站标配。

早在去年的 8 月 16 日,作为全世界最流行的浏览器内核的 Chromium 的开发团队就通过其 官方博客 宣布了未来将尝试将所有的网站协议默认导向 HTTPS,并且已经在 Chrome 115 版本开启了试验。

此外,根据 Chrome 的统计,超过 90%的用户已经开始使用 HTTPS 协议浏览网站。HTTP 向 HTTPS 的全面转换成为了一种不可逆转的趋势。或许,这次我们真的要和 HTTP 说再见了。

出于此因,我也通过安装 SSL 证书的方式,给我的网站启用了 HTTPS 协议。现在,各位访客就可以使用https://www.feifan.ltd 来更安全地访问我的个人博客了。同时,我也借这个契机来给大家分享一些和 HTTP 相关的知识。

什么是 HTTP ?

HTTP 全称 HyperText Transfer Protocol,也就是超文本传输协议。是一个在计算机网络中用于在客户端和服务端之间通信和传输数据的“约定和规范”。

对于超文本传输协议,实际上我们可以将它拆分成三部分来理解:

1.协议

“协议”这个词在我们的生活中很常见,比如我们刚毕业时会签一个“三方协议”,在使用一些 APP 时会要求我们阅读并同意“用户协议”。而计算机中的“协议”和我们生活中的“协议”本质上是相同的,所以,对于 HTTP 协议,我们可以这样理解:HTTP 是一个用于计算机世界的协议,它使用计算机能够理解的语言在协议签订方(计算机)之间建立了一种行为(通信和数据传输)的约定和规范。

2.传输

对于“传输”—— "Transfer" 一词,牛津词典中有这样一个解释:

即将一些东西从 A 转移到 B,或从 B 转移到 A,这很好的概括了 HTTP 中数据传输的过程,例如,我们在使用浏览器上网时,浏览器就是 A (请求方),网站的服务器就是 B(响应方),由于双方约定使用 HTTP 协议来通信和传输数据,所以当浏览器把请求数据发送给网站的服务器时,服务器就会在接收到请求后按照协议把数据返回给浏览器。最后,浏览器会解析从服务器接收到的数据(HTML、CSS、JavaScript 等资源),并根据这些代码渲染出用户在屏幕上看到的网页内容。

3.超文本

“超文本”中的“文本”通常来说指的是文字和字符,但在 HTTP 眼中“文本”的含义还可以拓展为图片、音频、视频等。而“超文本”顾名思义就是“超越了文本的文本”,是一种特殊的文本类型,可以使用超链接(hyperlinks)将各种数据(文字、图片、视频等)组织在一起,也可以说是数据的集合体。在 HTTP 中数据就是以这种形式进行传输的。

什么是 HTTPS ?

HTTPS(全称:Hypertext Transfer Protocol Secure,超文本传输安全协议)是一种更为安全的网络传输协议,与传统的 HTTP 协议的明文数据传输方式不同,它在 HTTP 协议的基础上加入了 SSL/TLS 加密协议,对传输的数据进行了加密,保护用户隐私和数据安全的同时,确保了客户端与服务器之间的通信是合法的,而非中间人攻击。

HTTPS 的原理可以概括为:

  1. 客户端向服务端发起 HTTPS 请求,会先与服务器进行 SSL/TLS 握手请求证书。
  2. 服务器返回 SSL/TLS 证书后,客户端会验证证书的有效性。
  3. 若证书通过验证,客户端将生成一个对称加密的密钥,并使用服务器的公钥加密这个密钥,发送给服务器。
  4. 服务器用自己的私钥解密出对称加密密钥,双方开始加密通信。

启用 HTTPS

  1. 获取证书

    要启用 HTTPS,首先需要获取一个 SSL/TLS 数字证书,而获取证书最便捷的方式之一就是使用各大云服务厂商提供的证书服务。由于我的网站部署在腾讯云服务器上,所以我选择了腾讯云提供的 SSL 证书服务,以此来获取一个免费的证书,虽然需要每三个月续签一次,但对于非商业网站或小型项目而言,这也是一个成本效益很高的选择。

  2. 安装证书并配置HTTPS

    获取到证书后,需要将其安装在服务器上,这里我选择了使用宝塔面板来完成证书的安装及部署工作。

    参考文档:SSL 证书 腾讯云宝塔面板 SSL 证书安装部署-证书安装-文档中心-腾讯云 (tencent.com).

    SSL 证书控制台 中选择您需要安装的证书并单击下载

    在宝塔面板的网站管理页面中选择您需要配置 SSL 证书的域名对应的站点并单击设置

    在弹出的站点修改窗口中,依次单击 SSL > 其他证书,填写密钥以及证书文件,并单击保存。

    • 密钥(KEY):使用文本编辑器打开 .key 私钥文件,并复制内容至对应区域,
    • 证书(PEM 格式):使用文本编辑器打开 .crt 证书文件,并复制内容至对应区域。

    在完成 SSL 证书的部署后,宝塔面板会自动为我们的网站配置 HTTPS 协议。至此,我们的网站就已经顺利启用了 HTTPS 加密连接。