免费证书申请

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

URL回调

从v0.2.4开始,如果在任务创建过程中,设置了回调URL,那么执行任务时会将认证数据以JSON的方式POST到此URL上,可以依此生成认证文件或者设置DNS域名解析,认证数据类似于:

  1. {
  2. "domain":"examples.com",
  3. "key":"7Gbk4rtXfPlvLOEyo0ywqa49G2Jpkv5QO5mA5rEJVxo.8d2BKc3S3qglKFrEChtPdbl9Q74tToyW6YREA7PkXRc",
  4. "token":"7Gbk4rtXfPlvLOEyo0ywqa49G2Jpkv5QO5mA5rEJVxo"
  5. }

其中:

  • domain - 正在验证的域名
  • key - 密钥,可以用来生成文件内容
  • token - 令牌值,可以用来生成文件名

在你的程序接收到这个请求后,可以在 /.well-known/acme-challenge/令牌值 文件里写入 key 的值。

文件写入后,请确保可以通过URL /.well-known/acme-challenge/令牌值 访问到这个文件内容,比如:

  1. http://www.example.com/.well-known/acme-challenge/7Gbk4rtXfPlvLOEyo0ywqa49G2Jpkv5QO5mA5rEJVxo

常见问题

使用HTTP认证无法申请证书

几个常见的原因可能导致无法通过HTTP认证申请证书:

  1. 域名没有正确解析到GoEdge的边缘节点;
  2. 网站没有使用当前GoEdge管理系统管理,ACME服务无法远程读取令牌内容;
  3. 网站前端有防火墙策略,导致ACME服务无法远程读取令牌内容。

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

  1. http://www.example.com/.well-known/acme-challenge/1234

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

  1. [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

就说明可以正常申请此域名的证书。