共计 1334 个字符,预计需要花费 4 分钟才能阅读完成。
默认使用 DNS 申请模式,这样有两个好处:
- 是 CF 里面你的所有域名的任何子域名证书或者泛域名证书你都能申请,不论你有没有解析到这个 IP。
- 不用占用 80 端口来模仿 Nginx 通过 HTTP 来验证域名所有权
安装 Acme.sh
curl https://get.acme.sh | sh -s email=demo@example.com
source ~/.bashrc
导入 CF 信息作为临时全局变量
使用全局 API
- CF_key 为 Global API Key, 在 CF 的 API 令牌中可以找到
- 填你自己的 CF 邮箱和 CF_Key
export CF_Email="demo@example.com"
export CF_Key="9xxxxxxxxx8145d4362bbd2c50ba06223b"
使用 DNS 的 API
在哪:账户主页 -> 点进你的域名 -> 最右边一列(往下翻)-> 获取您的 API 令牌 -> 用户令牌那里创建令牌 -> 编辑 DNS 的权限 -> 使用模板 ->DNS API 的使用域名范围自选 -> 然后获得 CF_Token(只出现一次,切记保存)
export CF_Token="El6MbS7m8BQ-XXXXXXCFXXXXUMPDxdxEU-K648"
## 申请证书
这里演示是申请泛域名证书,只能通过 dns 的方式来申请。我默认申请了 ecc 的,ecc 的是趋势所以没申请 RSA 的。```bash
acme.sh --issue -d '*.cienanos.com' --dns dns_cf --ecc -k ec-384
结果
Cert 为 fullchain.cer
Key 为 *.cienanos.com.key
[Tue Dec 10 09:22:38 PM CST 2024] Your cert is in: /root/.acme.sh/*.cienanos.com_ecc/*.cienanos.com.cer
[Tue Dec 10 09:22:38 PM CST 2024] Your cert key is in: /root/.acme.sh/*.cienanos.com_ecc/*.cienanos.com.key
[Tue Dec 10 09:22:38 PM CST 2024] The intermediate CA cert is in: /root/.acme.sh/*.cienanos.com_ecc/ca.cer
[Tue Dec 10 09:22:38 PM CST 2024] And the full-chain cert is in: /root/.acme.sh/*.cienanos.com_ecc/fullchain.cer
安装证书到指定目录
-d 后面是你的域名,泛域名证书就参考我的写法,同时 /root/cert/ 这个目录要存在。安装之后这个地方的证书文件在续签的时候也会更新。建议是安装到别的地方来使用。
acme.sh --install-cert -d *.cienanos.com --key-file /root/cert/privkey.pem --fullchain-file /root/cert/fullchain.pem
其他
切换 DNS 商家
有点多这里直接给官方链接了:https://github.com/acmesh-official/acme.sh/wiki/dnsapi
这里还有需要的参数及其设置方式。
正文完
发表至: 科学·上网
2024-12-16