如何在 GCP 跨项目中使用 Certificate Manager 创建 DNS-01 验证记录
你好,我是个无能的人。
虽然这种情况不常发生,但在项目 A 和项目 B 中签发通配符证书时,通常的 FIXED_RECORD 情况,或者说一般情况下,
需要将 _acme-challenge.example.com. 注册为指向目标的 CNAME 记录,但这样一来,跨项目的记录就会指向同一个目标,从而发生冲突。
因此,目前似乎只能通过 gcloud 命令使用这个选项;我在 Web Console 上没有找到,想必只能通过 gcloud 命令,或者说只能通过 API 创建。不过,使用 PER_PROJECT_RECORD 选项就可以避免这种冲突。这个机制设计得相当不错,不过它可以说是 Google 的专有实现,我认为不太应该采用依赖于此的运维方式,但应该还是会有需要用到它的场景。
AWS 的 ACM 似乎也有类似机制,所以如果是在 GCP 和 AWS 之间迁移,应该不会有什么问题。
gcloud certificate-manager dns-authorizations create my-dns-01-auth \
--domain="*.example.com" \
--type=PER_PROJECT_RECORD \
--location=global \
--project=PROJECT_ID这样一来,就需要注册如下记录。
_acme-challenge_abc123.example.com. CNAME ...
_acme-challenge_xyz123.example.com. CNAME ...不过,我记得这个 abc123 或者 xyz123 好像是项目 ID……