缘由

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/certbotCode language: PHP (php)

验证前的准备

获取证书前,需要验证域名所有权。可通过网站(放置验证文件至网站根目录)或 DNS(创建临时 TXT 验证记录)以完成验证。可以通过手动或插件自动操作完成,本次使用 cloudflare 插件以进行演示。

对于其他 DNS 服务商的验证插件及文档,请参阅这里

获取 Cloudflare API Token 以进行 DNS 记录的自动编辑

  1. 登录 Cloudflare 控制台。
  2. 生成指定域名的 Zone Token,并启用 DNS EDIT 权限。
  3. 复制该 Token

注意,Token 在生成后仅能显示一次,请妥善保存。

保存 Token 凭据文件至 ~/.secrets/certbot/cloudflare.ini

# Cloudflare API token used by Certbot
dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567Code 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.comCode language: JavaScript (javascript)

证书的保存位置: /etc/letsencrypt/live/

续租

当证书即将过期,你会收到来自官方的邮件提醒。使用 certbot renew 以进行快速更新。


0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据