如何在 GCP 跨项目中使用 Certificate Manager 创建 DNS-01 验证记录

2 min

language: ja bn en es hi pt ru zh-cn zh-tw

你好,我是个无能的人。

虽然这种情况不常发生,但在项目 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……

Related Posts