前排提示,本文章图片较多,流量较少用户请连 WIFI 后看
什么是 HTTPS
众所周知 HTTP
是明文传输,并没有加密措施,容易被人抓包分析内容,过去可以使用前后端约定俗成加密规则传输,但是到现在可以使用 HTTPS
避免这一步的操作,所以 HTTPS
就是 HTTP
的升级版,具有加密作用,而实现 HTTPS
的具象化表现就是 SSL
证书,可以理解为有了 SSL
证书,你的网站就可以被赋能 HTTPS
!
PS: 关于 HTTPS
的发展和实现机制详情可以参考我之前的文章 面试题之 HTTPS 为什么是安全的?
如何拿下 HTTPS
有 HTTPS
之前先需要域名,域名这种随便拿一个垃圾域名就行了,重在参与,获取途径如下
github
学生包 - 香港服务器 + 域名(一年),简直香到爆- 腾讯云/华为云/阿里云 - 新人优惠 1 元 1 年或者 4 - 20 都可以拿下一些垃圾顶级域名,比如
.top/.ltd/.asia/.lfu
这种
注意,你买了域名之后非常有可能会被域名提供商给迷惑,像我的域名是腾讯云买的域名,你可以按照下面的方式申请免费域名
注意上面这张图片红框住的部分,这个证书只能绑定一个域名,这意味这你的顶级域名的子域名(比如 www.yourdomain.com
),只能有一个享有 HTTPS
,这就很麻烦了
比如今天我开了一个网站买东西,明天我开给网站给别人咨询,作为一个成年人,怎么才能全都要 HTTPS
呢?
因此我们需要的上面说的泛域名证书,如何理解泛域名证书,参考下面的例子
*.example.com
的能够匹配的所有子域名都能使用 HTTPS
服务的就是泛域名证书,比如
a.example.com
b.example.com
c.example.com
那么腾讯云说它的泛域名证书要钱,我们在哪才能够白嫖到免费的泛域名证书呢?
Let's Encrypt
Let's Encrypt: 一个为 2.25 亿个网站提供 TLS 证书的非盈利性证书颁发机构。
其实 HTTPS
很容易拿到,甚至不需要钱,可以白嫖,相比域名要更简单获取(其实域名也有非常多垃圾域名)
说白了 HTTPS
就是知名企业背书的一个服务,那有没有痛击资本主义的公益机构?当然有,没错,它就是 Let's Encrypt
申请证书
虽然已经有了公益机构,但是直接在 Let's Encrypt
直接操作证书还是有点难,我建议直接去来此加密这个网站去获取证书
网站:来此加密 - Let's Encrypt 在线免费申请SSL证书 (osfipin.com)
- 第一步,先注册个账号
- 第二步申请证书
- 无脑下一步
- 第四步,开始验证,先等待验证
采用 DNS
验证方式
注意,这个时候是添加的 TXT
记录,简单理解就是设置一个新域名,然后访问这个域名会返回文本信息
PS: 整个申请 SSL
证书的过程中都无关你的服务器地址,仅仅与你的域名有关
然后就是添加域名解析的过程,往往你购买域名的厂商会给你一个域名的后台管理系统,在系统里面配置解析,这里我采用的是腾讯云提供的域名(4 元巨款)
- 第五步,在后台配置
DNS
解析
添加完成之后如下
- 第六步,验证并下载证书
验证成功
使用证书
PS: 我使用的 Azure 提供的 CentOS 服务器,并使用的宝塔面板,接下来将使用宝塔面板配置
先在域名后台管理系统添加域名解析(注意,你此时需要一个服务器来部署你的网站)
PS: 我使用了 a.space.poplink.asia
这个 space.poplink.asia
的子域名来做泛域名 SSL
证书验证
然后在宝塔部署网站
回到来此加密网站下载证书并解压,然后会有以下文件
其中
fullchain.crt
文件复制到宝塔网站管理的证书中。private.pem
文件复制到宝塔网站管理的密钥中。
最后就是见证奇迹的时刻 https://a.space.poplink.asia