跳到主要内容

Nginx Acme 免费证书申请

acme.sh 支持的 DNS 非常非常多,免费通配符证书非常的方便!

DNS 供应商查询 https://github.com/acmesh-official/acme.sh/wiki/dnsapi

先安装 acme.sh

git clone https://github.com/acmesh-official/acme.sh.git
cd acme.sh/

常见API

根据 dns 来选定参数

--dns dns_cf/dns_dp/dns_ali

## CloudFlare
export CF_Token="自行获取"
export CF_Zone_ID="自行获取"

## DNSPOD
export DP_Id="自行获取"
export DP_Key="自行获取"

## Aliyun
export Ali_Key="自行获取"
export Ali_Secret="自行获取"

常见 API 获取

DNSPod

设定密钥 获取方法(头像 - 我的账号 - 账号中心 - API密钥 - DNSPod Token - 创建密钥)

阿里云

注意: 阿里 DNS 的需要专门设置权限!

步骤:

  1. https://ram.console.aliyun.com/users 添加用户,选择 使用永久 AccessKey 访问创建 AccessKey ID 和 AccessKey Secret,支持通过 API 或其他开发工具访问

  2. 注意保存好 AccessKey ID. AccessKey Secret. 丢失可以再申请,不要泄露。

  3. 选择新添加的用户 添加权限,搜索 AliyunDNSFullAccess 根据说明可知是用于: AliyunDNSFullAccess 系统策略 管理云解析(DNS)的权限

开始申请证书

可以参考,可以同时申请多个域名,多个子域,多个泛域,甚至是多个泛子域证书例如:

  • 多个域名 -d zhuihoude.cn -d zhuihoude.com

  • 多个泛域 -d *.zhuihoude.cn -d *.zhuihoude.com

  • 多个泛子域 -d *.d.zhuihoude.cn -d *.d.zhuihoude.com

./acme.sh --issue \
--server zerossl --dns dns_dp --ecc --keylength ec-384 \
-d zhuihoude.cn -d zhuihoude.com -d *.zhuihoude.cn -d *.zhuihoude.com \
-d *.d.zhuihoude.cn -d *.d.zhuihoude.com \
--accountemail admin@zhuihoude.com

可用参数

## 选择 dns 服务商
--dns dns_cf
--dns dns_dp
--dns dns_ali
## 选择密钥类型
--rsa --keylength 4096
--ecc --keylength ec-384
## 选择证书供应商
--server letsencrypt
--server zerossl
--server buypass
--server buypassgo

申请完成

建议直接使用 fullchain.cer 和 zhuihoude.cn.key 包含所有证书链省事!

-----END CERTIFICATE-----

[Fri Feb 21 11:59:36 CST 2025] Your cert is in: /root/.acme.sh/zhuihoude.cn_ecc/zhuihoude.cn.cer

[Fri Feb 21 11:59:36 CST 2025] Your cert key is in: /root/.acme.sh/zhuihoude.cn_ecc/zhuihoude.cn.key

[Fri Feb 21 11:59:36 CST 2025] The intermediate CA cert is in: /root/.acme.sh/zhuihoude.cn_ecc/ca.cer

[Fri Feb 21 11:59:36 CST 2025] And the full-chain cert is in: /root/.acme.sh/zhuihoude.cn_ecc/fullchain.cer

其他: 群晖动态 DDNS

群晖自带 DDNS 支持泛域名 但是前端限制了 * 符号的无法提交,可以直接 POST 到后台 (GET好像也行)。

Post 接口 https://DSM:5001/webapi/entry.cgi

## 首先获取浏览器 F12 的 Request Headers 三个就够
x-requested-with:XMLHttpRequest
x-syno-hash:GrkQhxoP31TF4g-1ii_6Qzz-oYc2_g.MTY0
x-syno-token:xYlNn9NhDQgtA

#### Post 的 Form Data,(具体参数可以直接浏览器 F12 去复制 只需要改域名就行)
#### 可以用 Chrome 插件 Postwoman 来发送请求
stop_when_error:true
mode:"sequential"
compound:[{"api":"SYNO.Core.DDNS.Record","method":"set","version":1,"id":"DNSPod.cn","enable":true,"provider":"DNSPod.cn","hostname":"这个是域名*.zhuihoude.cn","username":"这个也是 腾讯云 DNS POD的","net":"DEFAULT","ip":"124.227.92.77","ipv6":"0:0:0:0:0:0:0:0","heartbeat":false,"passwd":"这个是腾讯云DNS POD 的"},{"api":"SYNO.Core.DDNS.Record","method":"update_ip_address","version":1,"id":"DNSPod.cn"}]
api:SYNO.Entry.Request
method:request
version:1