如何白嫖 SSL 证书

Let’s Encrypt

Let’s Encrypt 是一免费的公益组织,可以免费申请 SSL 请书,但每个证书有效期仅有三个月,但以使用自动化工具,自动继期。

开始

1.安装 snap

snap 可以说是一个 Linux 软件商店,有不少软件和工具都会发布在这里,而我们要使用的工具 certbot 就是发布在这里的。

以 Ubuntu 20.04 为例,只需要使用 root 用户执行指令即可安装。

apt install snapd

如果是其它系统,则可以到以下链接去看安装方法。

https://snapcraft.io/docs/installing-snapd

2.安装 certbot

certbot 是 Let’s Encrypt 所推荐的证书申请方式,由于 Let’s Encrypt 所提供的免费证书有效期只有三个月,如果每三个月手动申请一次,还是很痛苦的,所以通常建议使用自动工具,到期自动就申请。

而 certbot 就是这样的一个工具,且功能强大,可自动修改 nginx apache 的配置启用 https 等。

安装方式也很简单,使用 root 权限执行

snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot

3.在 nginx 上启用 https

在安装好 certbot 后,即可开始申请证书了。
此处以 nginx 举例,如未安装 nginx,可以自行了解。

在 nginx 需要启动,并设置 80 端口的监听,需要配置网站的 root 目录,在证书验证时,certbot 会将验证文件置于网站目录,所以需要网站可以走 http 访问。

执行

certbot certonly --nginx

便会自动申请证书并放在 /etc/letsencrypt/ 目录下,然后即可手动配置了。

也可以选择直接使用

certbot --nginx

这样会自动修改 nginx 的配置文件。

4.自动续期

certbot 最好的一点就是,可以自动续期,它会自动增加 cron 任务,在证书过期前续定。

我们并不需要手动开启,在完成证书申请后,就已经自动配置好定时任务了。

可以使用 certbot renew --dry-run 测试续期是否正常。