又又又折腾了安全证书 2025-05-22 程序之旅,记录 暂无评论 9 次阅读 l## 又又又折腾了安全证书 > 前些天弄了内网穿透,现在要对域名进行安全证书的申请与自动化配置。 > > 文档有说明的我这里就不赘述,请看连接[ACME 自动化入门](https://docs.certcloud.cn/docs/edupki/acme/) 这里要说的是我遇到的一些问题和解决方案 ### fish 通配符的问题 我使用的是 fish 工具,如果是遇到通配符的域名,会报错,那么有两个解决方案 1、使用反斜杠 `\` 来转义 `*`,以避免 Fish 将其视为通配符。 2、可以先用 `set` 命令将其存储在一个变量中,然后在命令中引用这个变量。 ```shell set domain "'*.badguy.top'" acme.sh --issue -d $domain --dns dns_cf --server https://acme.freessl.cn/v2/DV90/directory/aaaa ``` ### --dns dns_cf acme 在安装的时候会自动创建一个 cron 作业,需要指定自动dns验证,我这里使用的是 cloudflare,所以要添加 token 变量 ```shell export CF_Token="填DNS token" export CF_Zone_ID="填区域ID"" export CF_Account_ID="填账户ID" ``` ### 一些常用的命令 续签:acme.sh --renew -d *.badguy.top 已经签的域名:acme.sh --list ### --reloadcmd "nginx -s reload" 如果自动续签之后,需要执行以下 nginx -s reload 重新加载一下新的域名 ## acme.sh切换 CA **切换 Let’s Encrypt** acme.sh --set-default-ca --server letsencrypt **切换 Buypass** acme.sh --set-default-ca --server buypass **切换 ZeroSSL** acme.sh --set-default-ca --server zerossl **切换 SSL.com** acme.sh --set-default-ca --server ssl.com **切换 Google Public CA** acme.sh --set-default-ca --server google 如果以上的命令都无效,那么可以直接在执行签证的时候追加命令 ```shell --server letsencrypt ``` ### 申请限制 经过了多次申请,发现一直报 504 的错误,那么大概率是因为你把申请次数用完了,可以追加命令 `--debug`查看输出日志 [申请限制说明地址](https://letsencrypt.org/zh-cn/docs/rate-limits/) { "type": "urn:ietf:params:acme:error:rateLimited", "detail": "too many certificates (5) already issued for this exact set of domains in the last 168h0m0s, retry after 2025-05-22 19:04:39 UTC: see https://letsencrypt.org/docs/rate-limits/#new-certificates-per-exact-set-of-hostnames", "status": 429 } 打赏: 微信, 支付宝 标签: ssl 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。