Appearance
- 用户发起签发证书的请求
- LE 收到请求后根据域名生成字符串并返回给用户
- 用户根据收到的字符串更新 DNS TXT Record
- 记录生效之后用户发起验证 DNS 记录的请求
- LE 收到请求后验证 DNS 记录,成功则返回证书
使用 DNS TXT Record 模式
实现在没有公网 IP 的情况下获取证书
0 原理
- 用户发起签发证书的请求
- LE 收到请求后根据域名生成字符串并返回给用户
- 用户根据收到的字符串更新 DNS TXT Record
- 记录生效之后用户发起验证 DNS 记录的请求
- 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.cer | LE 证书 |
eleven.keng42.com.cer | 域名证书 |
fullchain.cer | LE 和域名的证书 |
eleven.keng42.com.conf | |
eleven.keng42.com.csr.conf | |
eleven.keng42.com.csr | |
eleven.keng42.com.key | 域名私钥 |