跳转至

1 acme+cloudflare生成免费证书(自动续期)

ACME (Automatic Certificate Management Environment) 协议和 Cloudflare 的组合可以用来生成免费的 SSL/TLS 证书,用于保护网站的流量。以下是操作步骤:


准备工作

  1. 确认权限:确保你有服务器的管理员权限,并已将域名设置为通过 Cloudflare 的 DNS 管理。
  2. 安装 ACME 客户端:推荐使用 acme.sh,它是一个轻量、强大的 ACME 协议客户端。

步骤 1: 安装 acme.sh

在 Linux 系统上,可以通过以下命令安装 acme.sh

curl https://get.acme.sh | sh
安装完成后,重启终端,确保 acme.sh 可用。


步骤 2: 配置 Cloudflare API

  1. 获取 Cloudflare API Token
  2. 登录到你的 Cloudflare 账户。
  3. 前往 "API Tokens" 页面,生成一个带有 DNS 编辑权限的 Token。

  4. 设置环境变量: 在终端中设置 Cloudflare 的 API Token:

    export CF_Token="你的_Cloudflare_API_Token"
    export CF_Account_ID="你的_Cloudflare_账户_ID" #(仅在某些情况下需要)
    

或者如果你使用的是全局 API 密钥:

export CF_Key="你的_Cloudflare_API_Key"
export CF_Email="你的_Cloudflare_账号邮箱"


步骤 3: 使用 acme.sh 申请证书

运行以下命令为你的域名申请证书:

acme.sh --issue --dns dns_cf -d example.com -d "*.example.com"
- dns_cf 指定使用 Cloudflare DNS 验证。 - -d 后面是你的域名,支持通配符(*.example.com)。


步骤 4: 安装和配置证书

生成的证书通常会存储在 ~/.acme.sh/域名/ 下,可以安装到你的服务器:

acme.sh --install-cert -d example.com \
--key-file /path/to/keyfile \
--fullchain-file /path/to/fullchainfile \
--reloadcmd "systemctl reload nginx"
- --key-file--fullchain-file 是证书文件的安装路径。 - --reloadcmd 是证书更新后重新加载服务的命令。


步骤 5: 自动更新证书

acme.sh 默认会设置一个 cron 任务,每隔 60 天自动更新证书。如果需要手动测试更新:

acme.sh --renew -d example.com --force


注意事项

  1. Cloudflare SSL 设置: 在 Cloudflare 中,将 SSL/TLS 模式设置为 “Full” 或 “Full (strict)” 以确保使用自定义证书时的安全性。
  2. 证书私钥保护: 确保生成的私钥和证书仅由服务器访问,避免泄露。

通过以上步骤,你可以使用 Cloudflare 和 ACME.sh 快速生成并管理免费的 SSL 证书。如果需要进一步的帮助,请告诉我!