缘由
CertBot 为官方推荐的 ACME 协议客户端,它是一个 Python 程序,且包含模块化插件支持。
与此同时,还有其他支持该协议的客户端,详情请参阅这里。
Let’s Encrypt 的根证书浏览器支持广泛,且支持泛域名。但单个证书的有效期为90天,以防止滥用。
步骤
Certbot 官方推荐使用 snap 以方便安装,但为保持轻量化,本次使用 Python 的虚拟环境安装。
开始安装
# Install dependencies
apt install python3 python3-venv libaugeas0
# Create virtual environment
python3 -m venv /opt/certbot/
# Upgrade pip to latest version
/opt/certbot/bin/pip install --upgrade pip
# Install dns challenge plugin
/opt/certbot/bin/pip install certbot-dns-cloudflare
# Link it to bin
ln -s /opt/certbot/bin/certbot /usr/bin/certbot
Code language: PHP (php)
验证前的准备
获取证书前,需要验证域名所有权。可通过网站(放置验证文件至网站根目录)或 DNS(创建临时 TXT 验证记录)以完成验证。可以通过手动或插件自动操作完成,本次使用 cloudflare 插件以进行演示。
对于其他 DNS 服务商的验证插件及文档,请参阅这里。
获取 Cloudflare API Token 以进行 DNS 记录的自动编辑
- 登录 Cloudflare 控制台。
- 生成指定域名的 Zone Token,并启用 DNS EDIT 权限。
- 复制该 Token
注意,Token 在生成后仅能显示一次,请妥善保存。
保存 Token 凭据文件至 ~/.secrets/certbot/cloudflare.ini
# Cloudflare API token used by Certbot
dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567
Code language: PHP (php)
在保存完毕后,使用 chmod 600
限制访问权限。
真正的开始
若插件配置正确,以下代码将为你生成 example.com 及 *.example.com 的证书。
certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
-d example.com
-d *.example.com
Code language: JavaScript (javascript)
证书的保存位置: /etc/letsencrypt/live/
续租
当证书即将过期,你会收到来自官方的邮件提醒。使用 certbot renew
以进行快速更新。
了解 Starx's Home 的更多信息
Subscribe to get the latest posts sent to your email.
0 条评论