在 k8s 上使用 CNAME(跨域)进行加密

在 k8s 上使用 CNAME(跨域)进行加密

就像 gitbook 提供的自定义域我必须设计一个服务,用户可以注册他们的自定义域名。例如,我有一个服务 hosting.example.com用户可以基于此服务注册任何域名。例如,我希望用户只需编辑 CNAMEsub1.example.netCNAME 到hosting.example.com

我的服务已经处理了虚拟主机,可以在 HTTP 上正常提供服务。现在我必须使用 lets encrypt 提供 HTTPS。我已经调查了acem.sh但必须额外​​的 CNAME_acme-challenge.sub1.example.net。我想减少这个步骤并让用户只需编辑 DNS 一个且只有一个 CNAME 记录。

因为我的服务基于 K8S 环境,HTTP-01 挑战不适合这种情况。

[更新] 由于我使用了通配符 CA,DNS 01 似乎是唯一可行的方法。

答案1

好吧,我终于解决了我的问题。

首先,DNS-01将强制验证_acme-挑战DNS 前缀,所以我的原始问题是不可能的。在我的场景中,我提供了两个颁发者:DNS-01 和 HTTP-01,一个用于我的通配符 CA 目的,另一个用于动态 CNAME 目的。

基于相同的命名空间,有两个颁发者:letsencrypt-dns01 和 letsencrypt-http01。当我需要通配符 CA 时,我会创建一个证书,并且 issuerRef 指向 letsencrypt-dns01。

此外,当基于Python,该服务(部署)需要添加额外的服务账号及相关权限。

相关内容