Skip to content
On this page
  1. 用户发起签发证书的请求
  2. LE 收到请求后根据域名生成字符串并返回给用户
  3. 用户根据收到的字符串更新 DNS TXT Record
  4. 记录生效之后用户发起验证 DNS 记录的请求
  5. LE 收到请求后验证 DNS 记录,成功则返回证书

使用 DNS TXT Record 模式 ​

实现在没有公网 IP 的情况下获取证书

0 原理 ​

  1. 用户发起签发证书的请求
  2. LE 收到请求后根据域名生成字符串并返回给用户
  3. 用户根据收到的字符串更新 DNS TXT Record
  4. 记录生效之后用户发起验证 DNS 记录的请求
  5. LE 收到请求后验证 DNS 记录,成功则返回证书

1 安装脚本 ​

sh
curl https://get.acme.sh | sh
source ~/.zshrc

2 生成 TXT Recode 字符串 ​

sh
acme.sh --issue --dns -d eleven.keng42.com

得到类似以下的回复

sh
Add the following txt record:
Domain:_acme-challenge.eleven.keng42.com
Txt value:9ihDbjYfTExAYeDs4DBUeuTo18KBzwvTEjUnSwd32-c

3 获取证书 ​

更新 DNS 记录,等待记录生效之后

sh
acme.sh --renew -d eleven.keng42.com

生成的证书和密钥在 ~/.acme.sh/eleven.keng42.com/

文件名类型
ca.cerLE 证书
eleven.keng42.com.cer域名证书
fullchain.cerLE 和域名的证书
eleven.keng42.com.conf
eleven.keng42.com.csr.conf
eleven.keng42.com.csr
eleven.keng42.com.key域名私钥

原文