免费证书申请

可以在 “网站列表” – “证书管理” – “申请证书” 里申请Let’s Encrypt提供的免费证书。

URL回调

如果在任务创建过程中,设置了回调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认证申请证书:

  1. 域名没有正确解析到CDN的边缘节点;
  2. 域名没有在网站中绑定(”网站设置” – “域名”);
  3. 网站没有使用当前CDN管理系统管理,ACME服务无法远程读取令牌内容;
  4. 网站前端有防火墙策略,导致ACME服务无法远程读取令牌内容。

通常可以我们通过访问以下URL测试ACME是否可以正常申请

http://www.example.com/.well-known/acme-challenge/1234
其中 /1234 是随意写的文件路径地址,不需要更换。

注意URL中的协议部分是http而不是https。把其中的www.example.com换成你的域名,如果提示是HTTP ERROR 404,而且可以在网站访问日志中看到这个访问(在访问日志开启的情况下),类似于:

[XXX节点][中国 北京] 111.187.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   
就说明可以正常申请此域名的证书,否则请按照本节开头的几个步骤检查。