想要给网站上 HTTPS,要如何免费拿下一张 SSL 证书?

188 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情

前排提示,本文章图片较多,流量较少用户请连 WIFI 后看

什么是 HTTPS

众所周知 HTTP 是明文传输,并没有加密措施,容易被人抓包分析内容,过去可以使用前后端约定俗成加密规则传输,但是到现在可以使用 HTTPS 避免这一步的操作,所以 HTTPS 就是 HTTP 的升级版,具有加密作用,而实现 HTTPS 的具象化表现就是 SSL 证书,可以理解为有了 SSL 证书,你的网站就可以被赋能 HTTPS

PS: 关于 HTTPS 的发展和实现机制详情可以参考我之前的文章 面试题之 HTTPS 为什么是安全的?

IMG

如何拿下 HTTPS

HTTPS 之前先需要域名,域名这种随便拿一个垃圾域名就行了,重在参与,获取途径如下

  1. github 学生包 - 香港服务器 + 域名(一年),简直香到爆
  2. 腾讯云/华为云/阿里云 - 新人优惠 1 元 1 年或者 4 - 20 都可以拿下一些垃圾顶级域名,比如 .top/.ltd/.asia/.lfu 这种

注意,你买了域名之后非常有可能会被域名提供商给迷惑,像我的域名是腾讯云买的域名,你可以按照下面的方式申请免费域名

IMG

IMG

IMG

注意上面这张图片红框住的部分,这个证书只能绑定一个域名,这意味这你的顶级域名的子域名(比如 www.yourdomain.com),只能有一个享有 HTTPS,这就很麻烦了

比如今天我开了一个网站买东西,明天我开给网站给别人咨询,作为一个成年人,怎么才能全都要 HTTPS 呢?

IMG

因此我们需要的上面说的泛域名证书,如何理解泛域名证书,参考下面的例子

*.example.com 的能够匹配的所有子域名都能使用 HTTPS 服务的就是泛域名证书,比如

  1. a.example.com
  2. b.example.com
  3. c.example.com

那么腾讯云说它的泛域名证书要钱,我们在哪才能够白嫖到免费的泛域名证书呢?

Let's Encrypt

Let's Encrypt: 一个为 2.25 亿个网站提供 TLS 证书的非盈利性证书颁发机构。

其实 HTTPS 很容易拿到,甚至不需要钱,可以白嫖,相比域名要更简单获取(其实域名也有非常多垃圾域名)

说白了 HTTPS 就是知名企业背书的一个服务,那有没有痛击资本主义的公益机构?当然有,没错,它就是 Let's Encrypt

Let's Encryp

申请证书

虽然已经有了公益机构,但是直接在 Let's Encrypt 直接操作证书还是有点难,我建议直接去来此加密这个网站去获取证书

网站:来此加密 - Let's Encrypt 在线免费申请SSL证书 (osfipin.com)

  1. 第一步,先注册个账号
  1. 第二步申请证书

IMG

IMG

  1. 无脑下一步

IMG

IMG

  1. 第四步,开始验证,先等待验证

IMG

采用 DNS 验证方式

IMG

IMG

注意,这个时候是添加的 TXT 记录,简单理解就是设置一个新域名,然后访问这个域名会返回文本信息

PS: 整个申请 SSL 证书的过程中都无关你的服务器地址,仅仅与你的域名有关

IMG

然后就是添加域名解析的过程,往往你购买域名的厂商会给你一个域名的后台管理系统,在系统里面配置解析,这里我采用的是腾讯云提供的域名(4 元巨款)

  1. 第五步,在后台配置 DNS 解析

IMG

添加完成之后如下

IMG

  1. 第六步,验证并下载证书

IMG

验证成功

IMG

使用证书

PS: 我使用的 Azure 提供的 CentOS 服务器,并使用的宝塔面板,接下来将使用宝塔面板配置

先在域名后台管理系统添加域名解析(注意,你此时需要一个服务器来部署你的网站)

PS: 我使用了 a.space.poplink.asia 这个 space.poplink.asia 的子域名来做泛域名 SSL 证书验证

IMG

然后在宝塔部署网站

IMG

回到来此加密网站下载证书并解压,然后会有以下文件

IMG

其中

  1. fullchain.crt 文件复制到宝塔网站管理的证书中。
  2. private.pem 文件复制到宝塔网站管理的密钥中。

IMG

最后就是见证奇迹的时刻 a.space.poplink.asia

IMG

参考资料

  1. 面试题之 HTTPS 为什么是安全的? - 我自己写的
  2. 宝塔面板部署SSL证书 - 来此加密