跳过正文
使用 Certbot 申请 TLS 证书

使用 Certbot 申请 TLS 证书

··
目录

安装系统依赖项
#

sudo apt update
sudo apt install python3 python3-dev python3-venv libaugeas-dev gcc

删除 Certbot-auto 和任何 Certbot 操作系统包
#

sudo apt-get remove certbot

设置 Python 虚拟环境
#

sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip

安装 Certbot
#

sudo /opt/certbot/bin/pip install certbot

准备 Certbot 命令
#

sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot

安装正确的 DNS 插件
#

运行以下命令,将 替换为您的 DNS 提供商的名称:

sudo /opt/certbot/bin/pip install certbot-dns-<PLUGIN>

例如,如果您的 DNS 提供商是 Cloudflare,则您可以运行以下命令:

sudo /opt/certbot/bin/pip install certbot-dns-cloudflare

设置凭据
#

以 Cloudflare 插件为例,您需要一个包含 Cloudflare API 凭据的配置文件,可以从Cloudflare 仪表板获取。

Certbot 所需的令牌需要 Zone:DNS:Edit 权限, 仅针对您需要证书的区域。

使用受限 API 令牌的示例凭证文件(推荐):

# Cloudflare API token used by Certbot
dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567

您可以通过交互方式或使用命令行参数 --dns-cloudflare-credentials 提供此文件的路径 。Certbot 会记录此文件的路径以供续订时使用,但不会存储文件的内容。

另外需要限权凭证文件,否则您可能会看到相关警告。

获取证书
#

示例:

获取 example.com 的证书:

certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
  -d example.com

获取 example.comwww.example.com 的证书:

certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
  -d example.com \
  -d www.example.com

获取 example.com 证书,等待60秒为 DNS 传播:

certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
  --dns-cloudflare-propagation-seconds 60 \
  -d example.com

续订
#

测试续订:

sudo certbot renew --dry-run

指定要续订的证书名:

sudo certbot renew --cert-name example.com

--cert-name 参数可以通过运行 certbot certificates 得到。

沿用证书:

sudo certbot renew --reuse-key [--cert-name example.com]

注意:沿用证书可能会使安全性大大降低。

取消沿用证书:

sudo certbot renew --no-reuse-key [--cert-name example.com]

升级 Certbot
#

插件以 Cloudflare 为例:

sudo /opt/certbot/bin/pip install --upgrade pip
sudo /opt/certbot/bin/pip install --upgrade certbot certbot-dns-cloudflare

如果此步骤导致错误,请运行 sudo rm -rf /opt/certbot 并重复所有安装流程。

作者
Ask Me Why