透過憑證授權單位服務部署跨區域的 Google 代管憑證


本教學課程說明如何使用 Certificate Manager,透過憑證授權單位服務,將全球 Google 代管憑證部署至跨區域內部應用程式負載平衡器。

如要部署至全域外部負載平衡器或區域負載平衡器,請參閱下列內容:

目標

本教學課程將說明如何完成下列工作:

  • 使用 Certificate Manager,透過 CA 服務建立 Google 代管的憑證。
  • 使用目標 HTTPS Proxy,將憑證部署至支援的負載平衡器。

事前準備

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  9. Make sure that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. 啟用 CA Service API
  15. 建立 CA 集區。您必須在這個 CA 集區中建立並啟用至少一個 CA。
  16. 請先記下下列事項,再按照本教學課程的步驟操作:

    • 使用憑證授權單位服務建立的憑證不受公開信任。如要核發公開信任的憑證,請使用 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 服務中執行動作時必須提供。

    如要瞭解詳情,請參考下列資源:

    建立負載平衡器

    本教學課程假設您已建立及設定負載平衡器的後端、健康狀態檢查、後端服務和網址對應。請記下網址對應項的名稱,本教學課程稍後會用到。

    如未建立跨區域內部應用程式負載平衡器,請參閱設定具有 VM 執行個體群組後端的跨區域內部應用程式負載平衡器

設定 CA 服務與 Certificate Manager 的整合

如要將 CA 服務與 Certificate Manager 整合,請按照下列步驟操作:

  1. 在目標 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
    
  2. 在目標 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 中建立的服務帳戶完整名稱。
  3. 為 CA 集區建立憑證核發設定資源:

    主控台

    1. 前往 Google Cloud 控制台的「Certificate Manager」頁面,然後點選「Issuance configs」分頁標籤。

      前往 Certificate Manager

    2. 按一下「建立」,系統隨即會顯示「建立憑證核發設定」頁面。

    3. 在「名稱」欄位中,輸入憑證核發設定的專屬名稱。

    4. 選用:在「說明」欄位中,輸入簽發設定的說明。

    5. 在「Location」(位置) 部分,選取「Global」

    6. 選用:在「Lifetime」(生命週期) 欄位中,以天為單位指定核發憑證的生命週期。值必須介於 21 至 30 天之間 (含首尾值)。

    7. 選用:在「輪替視窗百分比」中,指定憑證效期百分比,達到這個百分比時就會開始續約程序。如要瞭解有效值的範圍,請參閱「生命週期和輪替視窗百分比」。

    8. 選用:從「金鑰演算法」清單中,選取產生私密金鑰時要使用的金鑰演算法。

    9. 從「CA pool」(CA 集區) 清單中,選取要指派給這個憑證核發設定資源的 CA 集區名稱。

    10. 在「標籤」欄位中,指定要與憑證建立關聯的標籤。如要新增標籤,請按一下「新增標籤」,然後指定標籤的鍵和值。

    11. 點選「建立」

    gcloud

    gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \
        --ca-pool=CA_POOL
    

    更改下列內容:

    • ISSUANCE_CONFIG_NAME:憑證核發設定資源的名稱。
    • CA_POOL:您要指派給這個憑證核發設定資源的 CA 集區完整資源路徑和名稱。

    如要進一步瞭解憑證核發設定資源,請參閱「管理憑證核發設定資源」。

建立由 CA 服務執行個體核發的 Google 代管憑證

如要建立由 CA 服務執行個體核發的 Google 代管憑證,請按照下列步驟操作:

主控台

  1. 前往 Google Cloud 控制台的「Certificate Manager」頁面。

    前往 Certificate Manager

  2. 在「憑證」分頁中,按一下「新增憑證」

  3. 在「憑證名稱」欄位中,輸入憑證的專屬名稱。

  4. 選用:在「說明」欄位中輸入憑證說明。說明可協助您識別憑證。

  5. 在「Location」(位置) 部分,選取「Global」

  6. 在「範圍」部分,選取「所有區域」

  7. 在「憑證類型」中,選取「建立 Google 代管的憑證」

  8. 在「Certificate Authority type」(憑證授權單位類型) 部分,選取「Private」(私人)

  9. 在「網域名稱」欄位中,指定以半形逗號分隔的憑證網域名稱清單。每個網域名稱都必須是完整網域名稱,例如 myorg.example.com

  10. 在「選取憑證核發設定」中,選取參照目標 CA 集區的憑證核發設定資源名稱。

  11. 在「標籤」欄位中,指定要與憑證建立關聯的標籤。如要新增標籤,請按一下「新增標籤」,然後指定標籤的鍵和值。

  12. 點選「建立」

    新憑證會顯示在憑證清單中。

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

主控台

  1. 前往 Google Cloud 控制台的「Certificate Manager」頁面。

    前往 Certificate Manager

  2. 在「認證」分頁中,查看「狀態」欄中的認證。

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 帳戶收取本教學課程所用資源的費用,請將資源全數刪除。

  1. 刪除負載平衡器及其資源。

    請參閱「清除負載平衡設定」。

  2. 刪除 Google 代管的憑證:

    主控台

    1. 前往 Google Cloud 控制台的「Certificate Manager」頁面。

      前往 Certificate Manager

    2. 在「憑證」分頁中,選取憑證的核取方塊。

    3. 點選「刪除」。

    4. 在出現的對話方塊中,按一下 [Delete] (刪除) 以進行確認。

    gcloud

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

    CERTIFICATE_NAME 改為目標憑證的名稱。

  3. 刪除憑證核發設定資源:

    主控台

    1. 前往 Google Cloud 控制台的「Certificate Manager」頁面,然後點選「Issuance configs」分頁標籤。

      前往 Certificate Manager

    2. 選取要刪除的核發設定資源核取方塊。

    3. 點選「刪除」。

    4. 在出現的對話方塊中,按一下 [Delete] (刪除) 以進行確認。

    gcloud

    gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
    

    ISSUANCE_CONFIG_NAME 替換為目標憑證核發設定資源的名稱。

  4. 刪除 CA 集區。

    如要刪除 CA 集區,或停用憑證核發設定資源參照的 CA 集區中最後一個已啟用的 CA,請刪除參照該 CA 集區的所有憑證核發設定。詳情請參閱「刪除 CA 集區」。

後續步驟