免费证书申请
可以在 “网站服务” – “证书管理” – “申请证书” 里申请Let’s Encrypt提供的免费证书。
URL回调
从v0.2.4开始,如果在任务创建过程中,设置了回调URL,那么执行任务时会将认证数据以JSON的方式POST到此URL上,可以依此生成认证文件或者设置DNS域名解析,认证数据类似于:
{
"domain":"examples.com",
"key":"7Gbk4rtXfPlvLOEyo0ywqa49G2Jpkv5QO5mA5rEJVxo.8d2BKc3S3qglKFrEChtPdbl9Q74tToyW6YREA7PkXRc",
"token":"7Gbk4rtXfPlvLOEyo0ywqa49G2Jpkv5QO5mA5rEJVxo"
}
其中:
domain
- 正在验证的域名key
- 密钥,可以用来生成文件内容token
- 令牌值,可以用来生成文件名
在你的程序接收到这个请求后,可以在 /.well-known/acme-challenge/令牌值
文件里写入 key
的值。
文件写入后,请确保可以通过URL /.well-known/acme-challenge/令牌值
访问到这个文件内容,比如:
http://www.example.com/.well-known/acme-challenge/7Gbk4rtXfPlvLOEyo0ywqa49G2Jpkv5QO5mA5rEJVxo
常见问题
使用HTTP认证无法申请证书
几个常见的原因可能导致无法通过HTTP认证申请证书:
- 域名没有正确解析到GoEdge的边缘节点;
- 网站没有使用当前GoEdge管理系统管理,ACME服务无法远程读取令牌内容;
- 网站前端有防火墙策略,导致ACME服务无法远程读取令牌内容。
通常可以我们通过访问以下URL测试ACME是否可以正常申请
http://www.example.com/.well-known/acme-challenge/1234
注意URL中的协议部分是http
而不是https
。把其中的www.example.com
换成你的域名,如果提示是HTTP ERROR 404
,而且可以在网站服务访问日志中看到这个访问(在访问日志开启的情况下),类似于:
[XXX节点][中国 北京] 111.197.174.111 [25/Aug/2021:17:12:20 +0800] "GET http://example.com/.well-known/acme-challenge/1234 HTTP/1.1" 404 - 耗时:45.977 ms
就说明可以正常申请此域名的证书。