本教學課程說明如何使用 Certificate Manager 部署全域自行管理的憑證。
下列負載平衡器支援全域自行管理的憑證:
- 全域外部應用程式負載平衡器
- 傳統版應用程式負載平衡器
- 全域外部 Proxy 網路負載平衡器
- 傳統版 Proxy 網路負載平衡器
如要部署至區域或跨區域負載平衡器,請參閱下列內容:
將自行管理的憑證上傳至 Certificate Manager
如要將憑證上傳至 Certificate Manager,請按照下列步驟操作:
主控台
前往 Google Cloud 控制台的「Certificate Manager」頁面。
在「憑證」分頁中,按一下「新增憑證」。
在「憑證名稱」欄位中,輸入憑證的專屬名稱。
選用:在「說明」欄位中輸入憑證說明。說明可協助您識別憑證。
在「Location」(位置) 部分,選取「Global」。
在「範圍」部分,選取「預設」。
在「憑證類型」部分,選取「建立自行管理的憑證」。
在「憑證」欄位中,執行下列任一操作:
- 按一下「上傳」按鈕,然後選取 PEM 格式的憑證檔案。
- 複製並貼上 PEM 格式憑證的內容。內容開頭必須是
-----BEGIN CERTIFICATE-----
,結尾必須是-----END CERTIFICATE-----
。
在「私密金鑰憑證」欄位中,執行下列任一操作:
- 按一下「上傳」按鈕,然後選取私密金鑰。私密金鑰必須採用 PEM 格式,且不得受密碼保護。
- 複製並貼上 PEM 格式的私密金鑰內容。私密金鑰開頭須為
-----BEGIN PRIVATE KEY-----
,結尾須為-----END PRIVATE KEY-----
。
在「標籤」欄位中,指定要與憑證建立關聯的標籤。如要新增標籤,請按一下「新增標籤」
,然後指定標籤的鍵和值。點選「建立」。
新憑證會顯示在憑證清單中。
gcloud
如要建立全域自行管理的憑證,請使用 certificate-manager certificates create
指令:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --certificate-file="CERTIFICATE_FILE" \ --private-key-file="PRIVATE_KEY_FILE"
更改下列內容:
CERTIFICATE_NAME
:憑證名稱。CERTIFICATE_FILE
:CRT 憑證檔案的路徑和檔案名稱。PRIVATE_KEY_FILE
:KEY 私密金鑰檔案的路徑和檔案名稱。
Terraform
如要上傳自行管理的憑證,可以使用具有 self_managed
區塊的 google_certificate_manager_certificate
資源。
API
對 certificates.create
方法發出 POST
要求,即可上傳憑證,如下所示:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME { self_managed: { pem_certificate: "PEM_CERTIFICATE", pem_private_key: "PEM_KEY", } }
更改下列內容:
PROJECT_ID
: Google Cloud 專案的 ID。CERTIFICATE_NAME
:憑證名稱。PEM_CERTIFICATE
:憑證 PEM。PEM_KEY
:金鑰 PEM。
將自行管理的憑證部署至負載平衡器
如要部署全球性自行管理憑證,請使用憑證對應。
建立憑證對應關係
建立憑證對應,參照與憑證相關聯的憑證對應項目:
gcloud
如要建立憑證對應,請使用 gcloud certificate-manager maps create
指令:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
將 CERTIFICATE_MAP_NAME
替換為目標憑證對應的名稱。
Terraform
如要建立憑證對應關係,可以使用 google_certificate_manager_certificate_map
資源。
建立憑證對應關係項目
建立憑證對應關係項目,並將其與憑證和憑證對應關係建立關聯:
gcloud
如要建立憑證對應項目,請使用 gcloud certificate-manager maps entries create
指令:
gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME" \ --certificates="CERTIFICATE_NAME" \ --hostname="HOSTNAME"
更改下列內容:
CERTIFICATE_MAP_ENTRY_NAME
:憑證對應項目的名稱。CERTIFICATE_MAP_NAME
:憑證對應項目所附加的憑證對應名稱。CERTIFICATE_NAME
:要與憑證對應項目建立關聯的憑證名稱。HOSTNAME
:您要與憑證對應項目建立關聯的主機名稱。如要建立涵蓋萬用字元網域和根網域的憑證,請指定含有根網域和萬用字元的主機名稱,例如
example.com
和*.example.com
。此外,您必須指定兩個憑證對應項目,一個用於example.com
,另一個用於*.example.com
。
Terraform
如要使用根網域建立憑證對應項目,請使用 google_certificate_manager_certificate_map_entry
資源。
如要使用萬用字元網域建立憑證對應項目,請使用 google_certificate_manager_certificate_map_entry
資源。
確認憑證對應項目已啟用
請先確認憑證對應項目是否有效,再將對應的憑證對應項目附加至目標 Proxy。
如要驗證憑證對應項目,請使用 gcloud certificate-manager maps entries describe
指令:
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
更改下列內容:
CERTIFICATE_MAP_ENTRY_NAME
:憑證對應項目的名稱。CERTIFICATE_NAME
:要與憑證對應項目建立關聯的憑證名稱。
輸出結果會與下列內容相似:
certificates: createTime: '2021-09-06T10:01:56.229472109Z' hostname: example.com name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry state: ACTIVE updateTime: '2021-09-06T10:01:58.277031787Z'
將憑證對應附加至目標 Proxy
您可以將憑證對應項附加至新的或現有的目標 Proxy。
gcloud
如要將憑證對應附加至新的目標 Proxy,請使用 gcloud compute target-https-proxies create
指令:
gcloud compute target-https-proxies create PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --url-map="URL_MAP" \ --global
更改下列內容:
PROXY_NAME
:目標 Proxy 的名稱。CERTIFICATE_MAP_NAME
:參照憑證對應關係項目和相關聯憑證的憑證對應關係名稱。URL_MAP
:網址對應表名稱
如要將憑證對應附加至現有的目標 HTTPS Proxy,請使用 gcloud compute target-https-proxies update
指令。如果不知道現有目標 Proxy 的名稱,請前往「目標 Proxy」頁面,並記下目標 Proxy 的名稱。
gcloud compute target-https-proxies update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --global
建立或更新目標 Proxy 後,請執行下列指令進行驗證:
gcloud compute target-https-proxies list
Terraform
如要將憑證對應附加至目標 Proxy,可以使用 google_compute_target_https_proxy
資源。
設定目標 Proxy 時,如果您直接附加 TLS (SSL) 憑證,也透過憑證對應附加憑證,Proxy 會使用憑證對應參照的憑證,並忽略直接附加的 TLS (SSL) 憑證。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取這個教學課程所用資源的費用,請將資源全數刪除。
刪除負載平衡器及其資源。
請參閱「清除負載平衡設定」。
從 Proxy 刪除或分離憑證對應關係。
如要刪除憑證對應,請執行下列指令:
gcloud compute target-https-proxies delete PROXY_NAME
如要保留目標 HTTPS Proxy,請從 Proxy 分離憑證對應。
- 如果 Proxy 直接附加任何 TLS (SSL) 憑證,卸離憑證對應後,Proxy 會繼續使用這些直接附加的 TLS (SSL) 憑證。
- 如果沒有直接附加至 Proxy 的 TLS (SSL) 憑證,就無法從 Proxy 分離憑證對應。您必須先將至少一個 TLS (SSL) 憑證直接附加至 Proxy,才能卸離憑證對應。
如要卸離憑證對應,請執行下列指令:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-map
將
PROXY_NAME
替換為目標 Proxy 的名稱。從憑證對應關係中刪除憑證對應關係項目:
gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
更改下列內容:
CERTIFICATE_MAP_ENTRY_NAME
:憑證對應項目的名稱。CERTIFICATE_MAP_NAME
:憑證對應關係的名稱。
刪除憑證對應:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
將
CERTIFICATE_MAP_NAME
替換為憑證對應的名稱。刪除上傳的憑證:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
將
CERTIFICATE_NAME
替換為憑證名稱。