每次用微信打开我的博客页面,总能看到运营商那个恶心的注入广告,所以近期打算折腾下用上 https. 开始折腾新东西的时候,总是有种不知从哪里下手的感觉,那就先上某乎看看有哪些免费证书吧。

呼声比较高的是 Let’s Encrypt, 不但完全免费,甚至提供了非常好用的配置工具 certbot

进入 certbot 官网选择 web 服务器和系统版本后,会给出详细的安装配置文档:

获取安装脚本:

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

执行脚本安装证书:

# 创建证书并自动配置nginx
sudo ./path/to/certbot-auto --nginx
# 仅创建证书
sudo ./path/to/certbot-auto --nginx certonly

执行上述脚本后,会自动搜寻 nginx 的 vhosts, 提示你选择要配置的域名,配置完成后重启 nginx 就可以通过 https 来访问网站了。唯一的问题是证书只有 90 天有效期,但是 certbot 也提供了完美的更新方案:

sudo ./path/to/certbot-auto renew --dry-run

上述命令会模拟更新证书服务,提示成功的话新建 crontab 定时更新服务就可以了,官方建议一天更新两次:

0 */12 * * * ./path/to/certbot-auto renew --renew-hook "./path/to/nginx -s reload"

这样当证书更新后就会自动重启 nginx 使新的证书生效。