1 acme+cloudflare生成免费证书(自动续期)
ACME (Automatic Certificate Management Environment) 协议和 Cloudflare 的组合可以用来生成免费的 SSL/TLS 证书,用于保护网站的流量。以下是操作步骤:
准备工作
- 确认权限:确保你有服务器的管理员权限,并已将域名设置为通过 Cloudflare 的 DNS 管理。
- 安装 ACME 客户端:推荐使用 acme.sh,它是一个轻量、强大的 ACME 协议客户端。
步骤 1: 安装 acme.sh
在 Linux 系统上,可以通过以下命令安装 acme.sh:
curl https://get.acme.sh | sh
acme.sh 可用。
步骤 2: 配置 Cloudflare API
- 获取 Cloudflare API Token:
- 登录到你的 Cloudflare 账户。
-
前往 "API Tokens" 页面,生成一个带有 DNS 编辑权限的 Token。
-
设置环境变量: 在终端中设置 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
注意事项
- Cloudflare SSL 设置: 在 Cloudflare 中,将 SSL/TLS 模式设置为 “Full” 或 “Full (strict)” 以确保使用自定义证书时的安全性。
- 证书私钥保护: 确保生成的私钥和证书仅由服务器访问,避免泄露。
通过以上步骤,你可以使用 Cloudflare 和 ACME.sh 快速生成并管理免费的 SSL 证书。如果需要进一步的帮助,请告诉我!