使用Acme.sh申请配置证书
目录
ACME. SH 申请证书并使用 DNS-01 认证
默认 CA 是 ZeroSSL,如果想用 Let’s Encrypt 需要显示指定 --server letsencrypt 。似乎是 letsencrypt 申请证书比 zerossl 快一些。但是 letsencrypt 多次申请失败会限制 24 小时。
letsencrypt偏向开源免费,而zerossl偏商业。所以我还是选择letsencrypt。
- 安装:–install
- 选 CA:–set-default-ca
- 签发:–issue
- 部署到服务:–install-cert
- 续期:–renew
- 查看:–list
官方说明不建议使用 sudo 提权,而是全程使用一个用户。
下载 ACME. SH
| |
申请证书
HTTP-01 和 DNS-01 质询的区别是:
- HTTP-01 需要开放 80 端口完成验证,也就是在
/. Well-known/acme-challenge/<token>,然后证书签发机构再去抓取完成验证。 - DNS-01 则是在
_acme-challenge.你的域名下面添加一条 TXT 记录完成验证。适合不开放 80 端口的情况。
HTTP-01
如果已经搭建起网站:
| |
如果没有搭建起网站,就要临时启动一个 HTTP 服务占用 80 端口完成验证
| |
DNS-01:
| |
Cloudflare_account_id 点进域名,右侧下滑可以看到。
手动 DNS 模式
如果域名托管商不提供 API,就需要手动在域名管理后台处添加 TXT 记录,完成后可以删除。
| |
| |
安装证书
手动 cp 到服务目录的那份不会自动同步,也不会自动 reload 服务。需要用以下命令执行安装。
| |
参考
- README: https://github.com/acmesh-official/acme.sh
- 安装: https://github.com/acmesh-official/acme.sh/wiki/How-to-install
- DNS API: https://github.com/acmesh-official/acme.sh/wiki/dnsapi
- CA 选择: https://github.com/acmesh-official/acme.sh/wiki/Server
- sudo 说明: https://github.com/acmesh-official/acme.sh/wiki/sudo
