将证书迁移到 Certificate Manager

本页面介绍了将一个或多个证书迁移到 Certificate Manager 的步骤。涵盖以下场景:

  • 将第三方证书迁移到 Certificate Manager
  • 将 Cloud Load Balancing 证书迁移到 Certificate Manager。如需详细了解 Cloud Load Balancing 证书,请参阅 Cloud Load Balancing 文档中的 SSL 证书概览

只要配置期间没有出现错误,两种场景都不会造成停机。

如需详细了解本页中提到的 Certificate Manager 实体,请参阅 Certificate Manager 的工作原理

将第三方证书迁移到 Certificate Manager

本部分介绍如何将第三方服务提供的一个或多个证书迁移到证书管理器。

在开始之前,您必须选择并设置受支持的负载均衡器。 借助 Certificate Manager,您可以获取和管理传输层安全协议 (TLS) 证书,以便用于以下负载均衡器资源:

  • 应用负载平衡器使用的目标 HTTPS 代理:

    • 全球外部应用负载均衡器
    • 传统应用负载均衡器
    • 区域级外部应用负载均衡器(预览版
    • 区域级内部应用负载均衡器(预览版
    • 跨区域内部应用负载平衡器(预览版
  • 代理网络负载平衡器使用的目标 SSL 代理:

    • 全局外部代理网络负载均衡器
    • 传统代理网络负载均衡器

为您要迁移的每个证书完成以下步骤:

  1. 部署具有 DNS 授权的目标证书(如部署具有 DNS 授权的 Google 管理的证书(教程)中所述,但不包括清理步骤。为要迁移到负载均衡器的所有证书使用单个证书映射。

  2. 对于您在上一步中部署的每个证书,使用以下命令测试与负载均衡器 IP 地址上的证书涵盖的每个网域的连接:

    openssl s_client -showcerts -servername DOMAIN_NAME -connect IP_ADDRESS:443
    

    替换以下内容:

    • DOMAIN_NAME:目标网域的名称
    • IP_ADDRESS:您的负载均衡器的 IP 地址

    如需详细了解如何测试连接,请参阅使用 OpenSSL 进行测试

  3. 完成更新 DNS A 和 AAAA 记录以指向负载均衡器的 IP 地址中的步骤,将流量从第三方服务切换到 Cloud Load Balancing。

将 Cloud Load Balancing 证书迁移到 Certificate Manager

本部分介绍如何将一个或多个 Cloud Load Balancing 证书迁移到 Certificate Manager。

确定要迁移的证书

完成以下步骤以确定要迁移的证书:

  1. 在目标负载均衡器上,确定目标代理的名称。

  2. 使用以下命令获取有关目标代理(包括附加的证书)的信息,确定要迁移的证书:

    gcloud compute target-https-proxies describe TARGET_PROXY_NAME
    

    TARGET_PROXY_NAME 替换为目标代理的名称。

    输出类似于以下内容:

    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
    

    如需了解详情,请参阅获取有关目标代理的信息

在证书管理器中创建证书

在 Certificate Manager 中创建所选证书,如下所示:

在继续下一步之前,请等到每个证书的状态更改为 ACTIVE(如验证证书是否处于活跃状态中所述)。每个证书可能需要几个小时才能颁发完毕并且其状态会更改为 ACTIVE

创建证书映射

如需将证书部署到全局外部应用负载平衡器或传统应用负载平衡器,请完成创建证书映射中的步骤,以创建证书映射。

您无需证书映射即可将证书部署到区域级外部应用负载平衡器或区域级内部应用负载平衡器。

创建证书映射条目

如需将证书部署到全局外部应用负载平衡器或传统应用负载平衡器,请创建一个证书映射条目。您无需证书映射条目即可将证书部署到区域级外部应用负载平衡器或区域级内部应用负载平衡器。

对于您要迁移的每个证书,创建引用这些证书的证书映射条目,如下所示:

  1. 使用以下命令获取证书的详细信息:

    gcloud compute ssl-certificates --project=my-project describe CERTIFICATE_NAME
    

    CERTIFICATE_NAME 替换为目标证书的名称。

    输出类似于以下内容:

       -----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
    
  2. 针对 subjectAlternativeNames 字段中列出的每个网域,完成创建证书映射条目中的步骤,创建一个涵盖该网域的证书映射条目。如果多个证书涵盖单个网域,您只需创建一个证书映射条目,并使用覆盖该网域的任何有效证书。

  3. 可选:创建一个主证书映射条目,引用与最初附加到代理的证书列表中的第一个证书对应的证书,如创建主证书映射条目中所述。

  4. 使用以下命令验证您创建的每个证书映射条目是否处于活跃状态:

    gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
       --map="CERTIFICATE_MAP_NAME"
    

    替换以下内容:

    • CERTIFICATE_MAP_ENTRY_NAME:目标证书映射条目的名称
    • CERTIFICATE_MAP_NAME:此证书映射条目附加到的证书映射的名称

    输出类似于以下内容:

       createTime: '2021-09-06T10:01:56.229472109Z'
       name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/my-map-entry
       state: ACTIVE
       updateTime: '2021-09-06T10:01:58.277031787Z'
    

可选:在新的负载均衡器上测试配置

为了最大限度地缩短停机时间,建议您在并未处理生产流量的新负载均衡器上测试新配置的证书映射。这样,您就可以检测并解决任何错误,然后再在生产环境中继续迁移。

请按如下方式测试配置:

  1. 按照设置外部应用负载均衡器中的说明,使用新的目标代理创建新的负载均衡器。

  2. 如果您使用的是外部应用负载均衡器,请按照将证书映射附加到目标代理中的说明,将要测试的证书映射附加到新负载均衡器的目标代理上。

    如果您使用的是区域级外部应用负载平衡器或区域级内部应用负载平衡器,请按照部署区域级自行管理的证书中的说明将证书附加到目标代理。

  3. 对于迁移中包含的每个目标网域,请使用以下命令测试与新负载均衡器的 IP 地址上的网域之间的连接情况:

    openssl s_client -showcerts -servername DOMAIN_NAME -connect IP_ADDRESS:443
    

    替换以下内容:

    • DOMAIN_NAME:目标网域的名称
    • IP_ADDRESS:新负载均衡器的 IP 地址

    如需详细了解如何测试连接,请参阅使用 OpenSSL 进行测试

清理测试环境

按以下步骤清理您在前面的步骤中创建的测试环境:

  1. 将证书映射与代理分离:

    gcloud compute target-https-proxies update PROXY_NAME \
       --clear-certificate-map
    

    PROXY_NAME 替换为目标代理的名称。

  2. 按照删除负载均衡器中的说明删除测试负载均衡器。

请勿删除您在先前步骤中创建的证书、证书映射或证书映射条目。

将新证书映射应用于目标负载均衡器

测试新证书配置并确认其有效后,请将新证书映射应用于目标负载均衡器,如下所示。

  1. 如果您使用的是外部应用负载平衡器,请按照将证书映射附加到目标代理中的说明,将新证书映射附加到相应的目标代理。

    如果您使用的是区域级外部应用负载平衡器或区域级内部应用负载平衡器,请按照部署区域级自行管理的证书中的说明将证书附加到目标代理。

  2. 等待配置更改生效,且负载均衡器已开始提供新证书。 此过程通常需要几分钟的时间,但最长可能需要 30 分钟。

  3. 如果您发现流量存在任何问题,请完成将证书映射与代理分离中的步骤,将新证书映射与目标代理分离。这会将您的负载均衡器还原为原始配置。否则,新配置现已完成。

    如果您使用的是区域级外部应用负载平衡器或区域级内部应用负载平衡器,请通过附加先前附加的传统证书来还原更改。

后续步骤