本教學課程說明如何將 Cloud Load Balancing 憑證遷移至 Certificate Manager。如要進一步瞭解 Cloud Load Balancing 憑證,請參閱 Cloud Load Balancing 說明文件中的 SSL 憑證總覽。
如要遷移 Cloud Load Balancing 憑證,且不希望發生停機情形,請先找出要遷移的憑證。接著,建立與 Cloud Load Balancing 憑證數量相同的 Google 代管憑證。接著,將憑證整合到單一憑證對應檔,並在另一個負載平衡器中測試憑證對應檔。如果測試成功,請將憑證對應項附加至目標負載平衡器,該負載平衡器會代管 Cloud Load Balancing 憑證。
如要查看支援的負載平衡器清單,請參閱「憑證管理員總覽」。
目標
本教學課程將說明如何完成下列工作:
- 找出要遷移的目標負載平衡器憑證。
- 建立 Google 代管憑證。
- 建立憑證對應關係和憑證對應項目。
- 在其他負載平衡器中測試憑證對應。
- 將憑證對應項目附加至目標負載平衡器。
事前準備
- 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 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 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
Certificate Manager 擁有者 (
roles/certificatemanager.owner
)建立及管理 Certificate Manager 資源時必須具備這項權限。
Compute 負載平衡器管理員 (
roles/compute.loadBalancerAdmin
) 或 Compute 網路管理員 (roles/compute.networkAdmin
)建立及管理 HTTPS 目標 Proxy 時必須使用。
DNS 管理員 (
roles/dns.admin
)如要使用 Cloud DNS 做為 DNS 解決方案,則必須啟用這項服務。
- Certificate Manager 的角色和權限。
- Compute Engine 的Compute Engine IAM 角色和權限。
- Cloud DNS 的角色和權限。
必要的角色
請確認您具備下列角色,可完成本教學課程中的工作:
如要瞭解詳情,請參考下列資源:
找出要遷移的憑證
如要找出要遷移的憑證,請按照下列步驟操作:
在負載平衡器上,找出目標 Proxy 的名稱。
找出要遷移的憑證。
如要找出附加至目標 Proxy 的憑證,請執行下列指令:
gcloud compute target-https-proxies describe TARGET_PROXY_NAME
將
TARGET_PROXY_NAME
替換為目標 Proxy 的名稱。輸出結果會與下列內容相似:
creationTimestamp: '2021-10-06T04:05:07.520-07:00' fingerprint: c9Txdx6AfcM= id: '365692570234384780' kind: compute#targetHttpsProxy name: my-proxy selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/targetHttpsProxies/my-proxy sslCertificates: - https://www.googleapis.com/compute/v1/projects/my-project/global/sslCertificates/my-first-certificate - https://www.googleapis.com/compute/v1/projects/my-project/global/sslCertificates/my-second-certificate urlMap: https://www.googleapis.com/compute/v1/projects/my-project/global/urlMaps/my-map
請注意
sslCertificates
欄位中列出的憑證名稱。詳情請參閱「目標 Proxy 總覽」。-
gcloud compute ssl-certificates --project=PROJECT_ID describe LB_CERTIFICATE_NAME
更改下列內容:
PROJECT_ID
: Google Cloud 專案的 ID。LB_CERTIFICATE_NAME
:負載平衡器憑證的名稱。
輸出結果會與下列內容相似:
certificate: | -----BEGIN CERTIFICATE----- MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBX MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UE CxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYx OTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoT GUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIx MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63 ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwS iV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351k KSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZ DrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zk j5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5 cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esW CruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499 iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35Ei Eua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbap sZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b 9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAP BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAf BgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIw JQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUH MAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6Al oCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAy MAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIF AwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9 NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9 WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw 9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy +qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvi d0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8= -----END CERTIFICATE----- creationTimestamp: '2021-05-06T04:39:21.736-07:00' expireTime: '2022-06-07T01:10:34.000-07:00' id: '6422259403966690822' kind: compute#sslCertificate managed: domainStatus: a.my-domain1.example.com: ACTIVE b.my-domain2.example.com: ACTIVE domains: - a.my-domain1.example.com - b.my-domain2.example.com status: ACTIVE name: my-certificate selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/sslCertificates/my-certificate subjectAlternativeNames: - a. my-domain1.example.com - b. my-domain2.example.com type: MANAGED
建立 Google 代管憑證
建立與負載平衡器憑證數量相同的 Google 代管憑證。如果是全域或傳統負載平衡器,請建立全域憑證;如果是區域負載平衡器,請建立區域憑證;如果是跨區域負載平衡器,請建立跨區域憑證。建立憑證前,請先建立 DNS 授權,並將 CNAME 記錄新增至網域的授權 DNS 區域。
您可以選擇建立使用 DNS 授權的 Google 代管憑證 (建議) 或自行管理的憑證。
本節列出建立全域 Google 代管憑證的步驟和指令。如要建立區域或跨區域的 Google 代管憑證,請參閱「建立 Google 代管憑證」。
建立 DNS 授權
DNS 授權僅涵蓋單一網域名稱。您必須為要搭配目標憑證使用的每個網域名稱,分別建立 DNS 授權。
如要為萬用字元憑證 (例如 *.myorg.example.com
) 建立 DNS 授權,請為父項網域設定 DNS 授權,例如 myorg.example.com
。
主控台
建立憑證時,您可以建立 DNS 授權或附加現有的 DNS 授權。詳情請參閱「建立參照 DNS 授權的 Google 代管憑證」。
gcloud
如要建立 DNS 授權,請使用 certificate-manager
dns-authorizations create
指令:
gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \ --domain="DOMAIN_NAME"
更改下列內容:
AUTHORIZATION_NAME
:DNS 授權的名稱。DOMAIN_NAME
:您要建立這項 DNS 授權的目標網域名稱。 網域名稱必須是完整網域名稱,例如myorg.example.com
。
全域 Google 代管憑證會使用 FIXED_RECORD
做為預設的 DNS 授權類型。如要使用 PER_PROJECT_RECORD
DNS 授權,請執行下列指令:
gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \ --domain="DOMAIN_NAME" \ --type="PER_PROJECT_RECORD"
建立 DNS 授權後,請使用 certificate-manager dns-authorizations describe
指令驗證:
gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME \
輸出結果大致如下。在輸出內容中找出 dnsResourceRecord
行,並取得 CNAME
記錄 (data
、name
和 type
),加入 DNS 設定。
createTime: '2022-01-14T13:35:00.258409106Z' dnsResourceRecord: data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. name: _acme-challenge.myorg.example.com. type: CNAME domain: myorg.example.com name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization updateTime: '2022-01-14T13:35:01.571086137Z'
Terraform
如要建立 DNS 授權,可以使用 google_certificate_manager_dns_authorization
資源。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
API
如要建立 DNS 授權,請對 dnsAuthorizations.create
方法發出 POST
要求:
POST /v1/projects/PROJECT_ID/locations/global/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME" { "domain": "DOMAIN_NAME", "type": "PER_PROJECT_RECORD" //optional }
更改下列內容:
PROJECT_ID
: Google Cloud 專案的 ID。AUTHORIZATION_NAME
:DNS 授權的名稱。DOMAIN_NAME
:您要建立這項 DNS 授權的目標網域名稱。 網域名稱必須是完整網域名稱,例如myorg.example.com
。
建立參照 DNS 授權的 Google 代管憑證
如要建立參照您在上一個步驟中建立的 DNS 授權的全域 Google 管理憑證,請執行下列步驟:
主控台
前往 Google Cloud 控制台的「Certificate Manager」頁面。
在「憑證」分頁中,按一下「新增憑證」。
在「憑證名稱」欄位中,輸入憑證的專屬名稱。
選用:在「說明」欄位中輸入憑證說明。說明可協助您識別憑證。
在「Location」(位置) 部分,選取「Global」。
在「範圍」部分,選取「預設」。
在「憑證類型」中,選取「建立 Google 代管的憑證」。
在「Certificate Authority type」(憑證授權單位類型) 部分,選取「Public」(公開)。
在「網域名稱」欄位中,指定以半形逗號分隔的憑證網域名稱清單。每個網域名稱都必須是完整網域名稱,例如
myorg.example.com
。網域名稱也可以是萬用字元網域名稱,例如*.example.com
。在「授權類型」中,選取「DNS 授權」。
這個頁面會列出網域名稱的 DNS 授權。如果網域名稱沒有相關聯的 DNS 授權,請按照下列步驟建立授權:
- 按一下「建立缺少的 DNS 授權」。
- 在「DNS 授權名稱」欄位中,指定 DNS 授權的名稱。
預設的 DNS 授權類型為
FIXED_RECORD
。如要獨立管理多個專案的憑證,請選取「每個專案的授權」核取方塊。 - 按一下「建立 DNS 授權」。
在「標籤」欄位中,指定要與憑證建立關聯的標籤。如要新增標籤,請按一下「新增標籤」
,然後指定標籤的鍵和值。點選「建立」。
新憑證會顯示在憑證清單中。
gcloud
如要建立具有 DNS 授權的全域 Google 代管憑證,請使用 certificate-manager certificates create
指令搭配 dns-authorizations
標記:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAME,*.DOMAIN_NAME" \ --dns-authorizations="AUTHORIZATION_NAMES"
更改下列內容:
CERTIFICATE_NAME
:憑證名稱。DOMAIN_NAME
:目標網域的名稱。網域名稱必須是完整網域名稱,例如myorg.example.com
,或是萬用字元網域,例如*.myorg.example.com
。星號點前置字串(*.)
代表萬用字元憑證。AUTHORIZATION_NAMES
:以半形逗號分隔的清單,列出您為憑證建立的 DNS 授權名稱。
Terraform
API
對 certificates.create
方法發出 POST
要求,建立憑證,如下所示:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME { "managed": { "domains": ["DOMAIN_NAME"], "dnsAuthorizations": [ "projects/PROJECT_ID/locations/global/dnsAuthorizations/AUTHORIZATION_NAME", ], } }
更改下列內容:
PROJECT_ID
: Google Cloud 專案的 ID。CERTIFICATE_NAME
:憑證名稱。DOMAIN_NAME
:目標網域的名稱。網域名稱必須是完整網域名稱,例如myorg.example.com
,或是萬用字元網域,例如*.myorg.example.com
。星號點前置字串 (*.) 代表萬用字元憑證。AUTHORIZATION_NAMES
:以半形逗號分隔的 DNS 授權名稱清單。
在 DNS 設定中新增 CNAME 記錄
如果使用第三方 DNS 解決方案管理 DNS,請參閱相關文件,瞭解如何在 DNS 設定中新增 CNAME 記錄。如果您使用Google Cloud 管理 DNS,請完成本節中的步驟。
主控台
如要建立記錄集,請按照下列步驟操作:
前往 Google Cloud 控制台的「DNS zones」頁面。
按一下要新增記錄的 DNS 區域名稱。
在「Zone details」(區域詳細資料) 頁面中,按一下「Add standard」(新增標準)。
在「Create record set」(建立記錄集) 頁面的「DNS name」(DNS 名稱) 欄位中,輸入 DNS 區域的子網域。
輸入子網域名稱時,請確認子網域名稱 (包括「DNS 名稱」欄位中顯示的灰色文字),與
gcloud certificate-manager dns-authorizations describe
指令輸出內容中顯示的dnsResourceRecord.name
欄位完整值相符。請參閱以下例子:
如果
dnsResourceRecord.name
欄位值為_acme-challenge.myorg.example.com.
,且「DNS 名稱」欄位中的灰色文字為.example.com.
,請輸入_acme-challenge.myorg
。如果
dnsResourceRecord.name
欄位值為_acme-challenge.myorg.example.com.
,且「DNS 名稱」欄位中的灰色文字為.myorg.example.com.
,請輸入_acme-challenge
。如果
dnsResourceRecord.name
欄位的值為_acme-challenge_ujmmovf2vn55tgye.myorg.example.com.
,且「DNS name」(DNS 名稱) 欄位中灰顯的文字為.myorg.example.com.
,請輸入_acme-challenge_ujmmovf2vn55tgye
。
在「資源記錄類型」欄位中選取「CNAME」。
在「TTL」TTL欄位中,輸入資源記錄存留時間的正數值,也就是記錄可快取的時間。
從「TTL 單位」清單中選取時間單位,例如
30 minutes
。在「Canonical name」(標準名稱) 欄位中,輸入
dnsResourceRecord.data
欄位顯示的完整值,如gcloud certificate-manager dns-authorizations describe
指令的輸出內容所示。如要輸入其他資訊,請按一下「新增項目」。
點選「建立」。
gcloud
建立 DNS 授權時,gcloud CLI 指令會傳回對應的 CNAME 記錄。如要在目標網域的 DNS 區域中,將 CNAME 記錄新增至 DNS 設定,請按照下列步驟操作:
啟動 DNS 記錄交易:
gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
將
DNS_ZONE_NAME
替換為目標 DNS 區域的名稱。將 CNAME 記錄新增至目標 DNS 區域:
gcloud dns record-sets transaction add CNAME_RECORD \ --name="VALIDATION_SUBDOMAIN_NAME.DOMAIN_NAME." \ --ttl="30" \ --type="CNAME" \ --zone="DNS_ZONE_NAME"
更改下列內容:
CNAME_RECORD
:Google Cloud CLI 指令傳回的 CNAME 記錄完整資料值,該指令會建立對應的 DNS 授權。VALIDATION_SUBDOMAIN_NAME
:DNS 區域的前置子網域,例如_acme-challenge
。如要複製名稱,請參閱「建立 DNS 授權」一文,瞭解如何從gcloud certificate-manager dns-authorizations describe
指令記錄中複製名稱。DOMAIN_NAME
:目標網域名稱。網域名稱必須是有效的網域全名,例如myorg.example.com
。目標網域名稱後方也必須加上半形句號。DNS_ZONE_NAME
:目標 DNS 區域的名稱。
請參閱以下範例:
gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \ --name="_acme-challenge.myorg.example.com." \ --ttl="30" \ --type="CNAME" \ --zone="myorg-example-com"
執行 DNS 記錄交易,儲存變更:
gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
將
DNS_ZONE_NAME
替換為目標 DNS 區域的名稱。
Terraform
如要將 CNAME 記錄新增至 DNS 設定,可以使用 google_dns_record_set
資源。
驗證憑證狀態
將憑證部署至負載平衡器之前,請先確認憑證是否有效。憑證狀態可能需要幾分鐘的時間才會變更為 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: authorizationAttemptInfo: - domain: myorg.example.com state: AUTHORIZED dnsAuthorizations: - projects/myProject/locations/global/dnsAuthorizations/myCert domains: - myorg.example.com state: ACTIVE name: projects/myProject/locations/global/certificates/myCert pemCertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
如果數小時後憑證狀態仍未變成 ACTIVE
,請檢查您是否已在 DNS 設定中正確新增 CNAME
記錄。
如需更多疑難排解步驟,請參閱「排解憑證管理工具問題」。
建立憑證對應關係
如要將憑證部署至全域外部應用程式負載平衡器,請建立憑證對應關係。
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
更改下列內容:
CERTIFICATE_MAP_NAME
:憑證對應關係的名稱。
建立憑證對應項目
如要將憑證部署至全域外部應用程式負載平衡器,請建立憑證對應項目。
針對要遷移的每個憑證,建立參照這些憑證的憑證對應項目,如下所示:
取得憑證詳細資料。
在記錄中,針對
subjectAlternativeNames
欄位列出的每個網域,建立涵蓋該網域的憑證對應項目。如果有多個憑證涵蓋單一網域,您只需要建立一個憑證對應項目,並使用涵蓋該網域的任何有效憑證。gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME" \ --certificates="CERTIFICATE_NAMES" \ --hostname="HOSTNAME"
更改下列內容:
CERTIFICATE_MAP_ENTRY_NAME
:憑證對應項目名稱。CERTIFICATE_MAP_NAME
:憑證對應關係的名稱,憑證對應關係項目會附加至該名稱。CERTIFICATE_NAMES
:以半形逗號分隔的憑證名稱清單,您要將這些憑證與這個憑證對應項目建立關聯。HOSTNAME
:您要與憑證對應項目建立關聯的主機名稱。
選用:建立主要憑證對應項目,參照與最初附加至 Proxy 的憑證清單中第一個憑證相符的憑證。
gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME" \ --certificates="CERTIFICATE_NAMES" \ --set-primary
更改下列內容:
CERTIFICATE_MAP_ENTRY_NAME
:憑證對應項目名稱。CERTIFICATE_MAP_NAME
:憑證對應關係的名稱,憑證對應關係項目會附加至該名稱。CERTIFICATE_NAMES
:以半形逗號分隔的憑證名稱清單,您要將這些憑證與這個憑證對應項目建立關聯。
如要驗證您建立的每個憑證對應項目是否處於有效狀態,請執行下列指令:
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
更改下列內容:
CERTIFICATE_MAP_ENTRY_NAME
:憑證對應項目名稱。CERTIFICATE_MAP_NAME
:憑證對應關係的名稱,憑證對應關係項目會附加至該名稱。
輸出結果會與下列內容相似:
certificates: - projects/my-project/locations/global/certificates/my-certificate createTime: '2021-09-06T10:01:56.229472109Z' hostname: example.com name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/my-map-entry state: ACTIVE updateTime: '2021-09-06T10:01:58.277031787Z'
選用:在新負載平衡器上測試設定
為盡量減少停機時間,建議您在新負載平衡器上測試新設定的憑證對應,該負載平衡器不提供實際工作環境流量。這樣您就能在正式環境中遷移前,偵測並解決任何錯誤。
請按照下列步驟測試設定:
使用新的目標 Proxy 建立全域負載平衡器。如要建立負載平衡器,請參閱下列頁面:
如要建立全域外部應用程式負載平衡器,請參閱「設定具有 VM 執行個體群組後端的全域外部應用程式負載平衡器」。
如要建立全域外部 Proxy 網路負載平衡器 (SSL Proxy),請參閱設定具有 VM 執行個體群組後端的全域外部 Proxy 網路負載平衡器 (SSL Proxy)。
如要建立全域外部 Proxy 網路負載平衡器 (TCP Proxy),請參閱設定具備 VM 執行個體群組後端的全域外部 Proxy 網路負載平衡器 (TCP Proxy)。
將憑證對應附加至新負載平衡器的目標 Proxy。
gcloud compute target-https-proxies create TEST_PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --global
更改下列內容:
TEST_PROXY_NAME
:測試目標 Proxy 的名稱。CERTIFICATE_MAP_NAME
:參照憑證對應關係項目和相關聯憑證的憑證對應關係名稱。
針對遷移作業中包含的每個目標網域,測試與新負載平衡器 IP 位址上網域的連線:
openssl s_client -showcerts -servername DOMAIN_NAME -connect IP_ADDRESS:443
更改下列內容:
DOMAIN_NAME
:目標網域名稱。IP_ADDRESS
:新負載平衡器的 IP 位址。
如要進一步瞭解如何測試連線,請參閱「使用 OpenSSL 進行測試」。
清除測試環境
清除您在先前步驟中建立的測試環境。
如「刪除負載平衡器」一節所述,刪除測試負載平衡器。
請勿刪除您在上一個步驟中建立的憑證、憑證對應或憑證對應項目。
將新的憑證對應套用至目標負載平衡器
測試新憑證設定並確認有效後,請按照下列步驟,將新憑證對應套用至目標負載平衡器 (代管憑證的負載平衡器)。
如果您使用全域負載平衡器,請將憑證對應附加至新負載平衡器的目標 Proxy:
gcloud compute target-https-proxies update TARGET_PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --global
更改下列內容:
TARGET_PROXY_NAME
:目標 Proxy 的名稱。CERTIFICATE_MAP_NAME
:參照憑證對應關係項目和相關聯憑證的憑證對應關係名稱。
等待系統套用設定變更,並讓負載平衡器開始提供新憑證。這項程序通常會在幾分鐘內完成,但有時可能需要 30 分鐘。
憑證已遷移。如果發現流量有任何問題,請從目標 Proxy 中分離新的憑證對應。這會將負載平衡器還原為原始設定。