本教學課程說明如何使用 Certificate Manager,透過憑證授權單位服務,將全球 Google 代管憑證部署至跨區域內部應用程式負載平衡器。
如要部署至全域外部負載平衡器或區域負載平衡器,請參閱下列內容:
目標
本教學課程將說明如何完成下列工作:
- 使用 Certificate Manager,透過 CA 服務建立 Google 代管的憑證。
- 使用目標 HTTPS Proxy,將憑證部署至支援的負載平衡器。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 啟用 CA Service API。
- 建立 CA 集區。您必須在這個 CA 集區中建立並啟用至少一個 CA。
- 使用憑證授權單位服務建立的憑證不受公開信任。如要核發公開信任的憑證,請使用 DNS 授權或負載平衡器授權建立憑證。
如果目標 CA 集區已啟用憑證核發政策,則憑證佈建作業可能會因下列任一原因而失敗:
- 憑證核發政策已封鎖要求的憑證。 在這種情況下,由於憑證尚未核發,因此您不會收到帳單。
- 這項政策對憑證套用的變更,憑證管理員不支援。在這種情況下,即使憑證與 Certificate Manager 不完全相容,系統仍會向您收費,因為憑證已核發。
您可以設定從任何區域的 CA 集區核發全域 Google 代管的 TLS 憑證。
Certificate Manager 擁有者 (
roles/certificatemanager.owner
)建立及管理 Certificate Manager 資源時必須具備這項權限。
Compute 負載平衡器管理員 (
roles/compute.loadBalancerAdmin
) 或 Compute 網路管理員 (roles/compute.networkAdmin
)建立及管理 HTTPS 目標 Proxy 時必須使用。
CA 服務管理員 (
roles/privateca.admin
)在 CA 服務中執行動作時必須提供。
- Certificate Manager 的角色和權限。
- Compute Engine 的Compute Engine IAM 角色和權限。
- 憑證授權單位服務的存取權控管機制。
請先記下下列事項,再按照本教學課程的步驟操作:
必要的角色
請確認您具備下列角色,可完成本教學課程中的工作:
如要瞭解詳情,請參考下列資源:
建立負載平衡器
本教學課程假設您已建立及設定負載平衡器的後端、健康狀態檢查、後端服務和網址對應。請記下網址對應項的名稱,本教學課程稍後會用到。
如未建立跨區域內部應用程式負載平衡器,請參閱設定具有 VM 執行個體群組後端的跨區域內部應用程式負載平衡器。
設定 CA 服務與 Certificate Manager 的整合
如要將 CA 服務與 Certificate Manager 整合,請按照下列步驟操作:
在目標 Google Cloud 專案中,建立 Certificate Manager 服務帳戶:
gcloud beta services identity create --service=certificatemanager.googleapis.com \ --project=PROJECT_ID
將
PROJECT_ID
替換為目標專案的 ID。Google Cloud指令會傳回所建立服務身分的名稱。請參閱以下範例:
service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
在目標 CA 集區中,將 CA 服務憑證要求者角色 (
roles/privateca.certificateRequester
) 授予 Certificate Manager 服務帳戶:gcloud privateca pools add-iam-policy-binding CA_POOL \ --location LOCATION \ --member "serviceAccount:SERVICE_ACCOUNT" \ --role roles/privateca.certificateRequester
更改下列內容:
CA_POOL
:目標 CA 集區的 ID。LOCATION
:目標 Google Cloud 位置。SERVICE_ACCOUNT
:您在步驟 1 中建立的服務帳戶完整名稱。
為 CA 集區建立憑證核發設定資源:
主控台
前往 Google Cloud 控制台的「Certificate Manager」頁面,然後點選「Issuance configs」分頁標籤。
按一下「建立」,系統隨即會顯示「建立憑證核發設定」頁面。
在「名稱」欄位中,輸入憑證核發設定的專屬名稱。
選用:在「說明」欄位中,輸入簽發設定的說明。
在「Location」(位置) 部分,選取「Global」。
選用:在「Lifetime」(生命週期) 欄位中,以天為單位指定核發憑證的生命週期。值必須介於 21 至 30 天之間 (含首尾值)。
選用:在「輪替視窗百分比」中,指定憑證效期百分比,達到這個百分比時就會開始續約程序。如要瞭解有效值的範圍,請參閱「生命週期和輪替視窗百分比」。
選用:從「金鑰演算法」清單中,選取產生私密金鑰時要使用的金鑰演算法。
從「CA pool」(CA 集區) 清單中,選取要指派給這個憑證核發設定資源的 CA 集區名稱。
在「標籤」欄位中,指定要與憑證建立關聯的標籤。如要新增標籤,請按一下「新增標籤」
,然後指定標籤的鍵和值。點選「建立」。
gcloud
gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \ --ca-pool=CA_POOL
更改下列內容:
ISSUANCE_CONFIG_NAME
:憑證核發設定資源的名稱。CA_POOL
:您要指派給這個憑證核發設定資源的 CA 集區完整資源路徑和名稱。
如要進一步瞭解憑證核發設定資源,請參閱「管理憑證核發設定資源」。
建立由 CA 服務執行個體核發的 Google 代管憑證
如要建立由 CA 服務執行個體核發的 Google 代管憑證,請按照下列步驟操作:
主控台
前往 Google Cloud 控制台的「Certificate Manager」頁面。
在「憑證」分頁中,按一下「新增憑證」。
在「憑證名稱」欄位中,輸入憑證的專屬名稱。
選用:在「說明」欄位中輸入憑證說明。說明可協助您識別憑證。
在「Location」(位置) 部分,選取「Global」。
在「範圍」部分,選取「所有區域」。
在「憑證類型」中,選取「建立 Google 代管的憑證」。
在「Certificate Authority type」(憑證授權單位類型) 部分,選取「Private」(私人)。
在「網域名稱」欄位中,指定以半形逗號分隔的憑證網域名稱清單。每個網域名稱都必須是完整網域名稱,例如
myorg.example.com
。在「選取憑證核發設定」中,選取參照目標 CA 集區的憑證核發設定資源名稱。
在「標籤」欄位中,指定要與憑證建立關聯的標籤。如要新增標籤,請按一下「新增標籤」
,然後指定標籤的鍵和值。點選「建立」。
新憑證會顯示在憑證清單中。
gcloud
如要使用憑證授權單位服務建立跨區域的 Google 代管憑證,請使用 certificate-manager certificates create
指令,並加上 issuance-config
和 --scope
標記:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES" \ --issuance-config=ISSUANCE_CONFIG_NAME \ --scope=all-regions
更改下列內容:
CERTIFICATE_NAME
:憑證名稱。DOMAIN_NAME
:目標網域的名稱。網域名稱必須是完整網域名稱,例如myorg.example.com
。ISSUANCE_CONFIG_NAME
:參照目標 CA 集區的憑證核發設定資源名稱。
API
對 certificates.create
方法發出 POST
要求,建立憑證,如下所示:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME" { "managed": { "domains": ["DOMAIN_NAME"], "issuanceConfig": "ISSUANCE_CONFIG_NAME", "scope": "ALL_REGIONS" } }
更改下列內容:
PROJECT_ID
: Google Cloud 專案的 ID。CERTIFICATE_NAME
:憑證名稱。DOMAIN_NAME
:目標網域的名稱。網域名稱必須是完整網域名稱,例如myorg.example.com
。ISSUANCE_CONFIG_NAME
:參照目標 CA 集區的憑證核發設定資源名稱。
驗證憑證狀態
將憑證部署至負載平衡器之前,請先確認憑證是否有效。憑證狀態可能需要幾分鐘的時間才會變更為 ACTIVE
。
主控台
前往 Google Cloud 控制台的「Certificate Manager」頁面。
在「認證」分頁中,查看「狀態」欄中的認證。
gcloud
如要驗證憑證狀態,請執行下列指令:
gcloud certificate-manager certificates describe CERTIFICATE_NAME
將 CERTIFICATE_NAME
替換為目標 Google 管理的憑證名稱。
輸出結果會與下列內容相似:
createTime: '2021-10-20T12:19:53.370778666Z' expireTime: '2022-05-07T05:03:49Z' managed: domains: - myorg.example.com issuanceConfig: projects/myproject/locations/global/issuanceConfigs/myissuanceConfig state: ACTIVE name: projects/myproject/locations/global/certificates/mycertificate pemCertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
如需更多疑難排解步驟,請參閱「排解憑證管理工具問題」。
將憑證部署至負載平衡器
如要部署 Google 代管的全域憑證,請直接將其附加至目標 Proxy。
將憑證直接附加至目標 Proxy
您可以將憑證附加至新的或現有的目標 Proxy。
如要將憑證附加至新的目標 Proxy,請使用 gcloud compute
target-https-proxies create
指令:
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP \ --certificate-manager-certificates=CERTIFICATE_NAME \ --global
更改下列內容:
PROXY_NAME
:目標 Proxy 的名稱。URL_MAP
:網址對應表名稱。建立負載平衡器時,您已建立網址對應。CERTIFICATE_NAME
:憑證名稱。
如要將憑證附加至現有的目標 HTTPS Proxy,請使用 gcloud
compute target-https-proxies update
指令。如果不知道現有目標 Proxy 的名稱,請前往「目標 Proxy」頁面,並記下目標 Proxy 的名稱。
gcloud compute target-https-proxies update PROXY_NAME \ --global \ --certificate-manager-certificates=CERTIFICATE_NAME
建立或更新目標 Proxy 後,請執行下列指令進行驗證:
gcloud compute target-https-proxies list
排解 CA 服務核發的憑證相關問題
如需疑難排解步驟,請參閱「與 CA 服務執行個體核發憑證相關的問題」。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取本教學課程所用資源的費用,請將資源全數刪除。
刪除負載平衡器及其資源。
請參閱「清除負載平衡設定」。
刪除 Google 代管的憑證:
主控台
前往 Google Cloud 控制台的「Certificate Manager」頁面。
在「憑證」分頁中,選取憑證的核取方塊。
點選「刪除」。
在出現的對話方塊中,按一下 [Delete] (刪除) 以進行確認。
gcloud
gcloud certificate-manager certificates delete CERTIFICATE_NAME
將
CERTIFICATE_NAME
改為目標憑證的名稱。刪除憑證核發設定資源:
主控台
前往 Google Cloud 控制台的「Certificate Manager」頁面,然後點選「Issuance configs」分頁標籤。
選取要刪除的核發設定資源核取方塊。
點選「刪除」。
在出現的對話方塊中,按一下 [Delete] (刪除) 以進行確認。
gcloud
gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
將
ISSUANCE_CONFIG_NAME
替換為目標憑證核發設定資源的名稱。刪除 CA 集區。
如要刪除 CA 集區,或停用憑證核發設定資源參照的 CA 集區中最後一個已啟用的 CA,請刪除參照該 CA 集區的所有憑證核發設定。詳情請參閱「刪除 CA 集區」。