如何在 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……