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域名私钥

原文