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