2018 年 5 月 1 日,GitHub 宣布GitHub Pages 现已支持 HTTPS。它表明如果您使用 CNAME 或 ALIAS 记录,则您已为此功能做好了所有准备;或者,使用新的 IP 地址更新 DNS 以获取 A 记录。
然后,您可以强制执行 HTTPS:
但是,我的“强制 HTTPS”选项被禁用,并显示:
由于尚未为您的域名颁发证书,因此您的网站无法使用
这是一个需要 GitHub 时间才能完成的自动化过程;还是我应该执行的操作?从他们的自定义域故障排除页面上,它指出:
如果您选择使用证书颁发机构授权 (CAA) 记录,则必须存在至少一个值为 letsencrypt.org 的 CAA 记录,以便您的 GitHub Pages 网站可通过 HTTPS 访问。有关更多信息,请参阅“证书颁发机构授权 (CAA)“在 Let's Encrypt 文档中。
这是否意味着我应该创建一个新的 CAA DNS 记录?
对于 GitHub 使用的 Let's Encrypt 服务,此记录需要包含什么?或者,我是否在此记录中使用自己的域名,如下所示:
CAA 记录:
0 issue caa.mydomain.tld
答案1
严格来说,您无需验证您是否拥有对父命名空间的控制权,即您为其请求 TLS 服务器证书或实施 CAA 的上级域。
只要 GitHub 生成的签名请求中的通用名称解析为 GitHub Pages 服务器 IP 地址,Let's Encrypt 就会通过 GitHub Pages 自动化自动颁发证书。那么,故障排除:是这样的吗?没有强制实施 HTTPS已启用?
请求和颁发服务器证书的自动化确实需要大规模的工作量,因此,正如您所怀疑的,颁发只是延迟,这也是可以想象的。
答案2
GitHub 上的 Let's Encrypt 机器人必须查看 GitHub IP 地址才能动态创建证书。因此,如果您使用 Cloudflare(或类似产品),则需要取消指向 GitHub 的 CNAME 的代理,以便机器人看到 GitHub IP 而不是 Cloudflare(或其他)IP 地址。
一旦 Let's Encrypt 机器人确认路由指向它们自己的基础设施,就会为该自定义域名正确创建和设置证书。