花生壳DDNS为何不支持LetsEncrypt申请

时间:2024-02-18 08:07:12

Inspired by Let\'s Encrypt Community , thx to sahsanu, jsha, and orzorc.

开端

Lets Encrypt 是一款免费的网站 SSL 证书签发机构,Certify 是一款开源的 Windows + IIS 下的 Lets Encrypt 申请/自动更新程序。

花生壳是oray的动态域名解析服务。

笔者在尝试在启用了花生壳的域名网站申请 Lets Encrypt 证书时,发现 validation 总是失败,仿佛证书服务无法访问我们的域名一样。

而且这个问题与 域名、网站配置、操作系统 无关。

发展

在 Lets Encryp t社区笔者发现了问题的症结:

Oray 的 DNS 不支持 DNS 0x20。

在向 Lets Encrypt 申请证书时,会对每个提供的域名进行解析,当 Lets Encrypt 发出解析请求时,会随机将域名中的部分字母大写。

例如:域名为 envsafe.cn,但发送时改为 eNvsAfE.cN

Lets Encrypt 期待 DNS 的应答中的域名为完全一致的 eNvsAfE.cN,否则将拒绝申请

然而 oray 的 DNS 应答中域名变回了非大写的 envsafe.cn

在联系了oray的专员客服后,笔者认为花生壳的技术人员对此不甚了解,等待他们更新服务,不如另辟蹊径。

结局

既然 oray 的 DNS 不行,那就临时换一个能行的。经笔者测试,DNSPod(腾讯云)的 DNS 是可以的。

成功申请证书步骤如下:

  1. 在域名管理后台的 NS 管理中,选择自定义DNS,输入DNSPod的域名解析服务地址,免费版地址为:
    • f1g1ns1.dnspod.net
    • f1g1ns2.dnspod.net
  2. 在DNSPod中添加域名,等待DNS生效(经测试,cn域名几乎即时生效,info需要约12小时,cc需要约18小时)
  3. 增加域名的A记录(可以随便写),下载安装 DNSPodClientLite 启用域名的动态解析。
  4. 运行Certify获取证书
  5. 再次修改域名NS,改回oray,停止DNSPodClientLite。

证书有效期为90天,应在证书到期之前执行上述步骤 renew。