前些日子我突然发现自己的 bolg 被 DNS 污染,这时候我才知道 vercel 已经被墙了。这给了我一个教训:
永远不要把自己的域名指向某个提供公共部署服务的平台上。
幸好我还有一台VPS,可以进行代理。但是 vercel 使用的是 https —— 理所当然。我并没有去研究它是否可以退化成 http,这个想法本身就让人不安。所以,我需要解决证书问题。于是,certbot
走入我的视野。
certbot 是什么?
Certbot 是一个免费的开源软件工具,用于在手动管理的网站上自动使用"Let's Encrypt" 证书,以启用 HTTPS。
Let's Encrypt是一个于2015年三季度推出的数字证书认证机构,旨在以自动化流程消除手动创建和安装证书的复杂流程,并推广使万维网服务器的加密连接无所不在,为安全网站提供免费的传输层安全性协议(TLS)证书。
从我此次申请证书的体验来看,他们显然做到了。
安装
首先,根据不同的 serve 安装不同的包。以 nginx
为例:
sudo apt-get install python-certbot-nginx
使用
假设为 domain.com
申请证书
sudo certbot -d domain.com -d "*.domain.com"
跟着提示走即可。
注意这里同时申请了所有的子域。如果只申请 www.domain.com
, 添加子域的时候就需要执行额外的命令。
sudo certbot --nginx -d subdomain.domain.com --expand
这些指令会修改你的 nginx
配置,证书会生成到 /etc/letsencrypt/live/domain.com/
目录下
定时更新
Certbot
证书的有效期为90天, 需要定时续期。新版本会帮你设置。
查看定时器:sudo systemctl status certbot.timer