Migre certificados do balanceador de carga para o Gestor de certificados

Este tutorial mostra como migrar certificados do Cloud Load Balancing para o Certificate Manager. Para mais informações acerca dos certificados do Cloud Load Balancing, consulte a vista geral dos certificados SSL na documentação do Cloud Load Balancing.

Para migrar certificados do Cloud Load Balancing sem período de inatividade, primeiro identifique os certificados que quer migrar. Em seguida, crie o mesmo número de certificados geridos pela Google que os seus certificados do Cloud Load Balancing. Em seguida, consolide os certificados num único mapeamento de certificados e teste o mapeamento de certificados noutro equilibrador de carga. Se os testes forem bem-sucedidos, anexe o mapeamento de certificados ao equilibrador de carga de destino que aloja os seus certificados do Cloud Load Balancing.

Para encontrar a lista de equilibradores de carga suportados, consulte o artigo Vista geral do Gestor de certificados.

Objetivos

Este tutorial mostra como concluir as seguintes tarefas:

  • Identifique os certificados do equilibrador de carga de destino a migrar.
  • Crie certificados geridos pela Google.
  • Crie um mapeamento de certificados e entradas de mapeamento de certificados.
  • Teste o mapeamento de certificados noutro equilibrador de carga.
  • Anexe o mapa de certificados ao balanceador de carga de destino.

Antes de começar

  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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte comando:

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine, Certificate Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  13. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  14. Funções necessárias

    Certifique-se de que tem as seguintes funções para concluir as tarefas neste tutorial:

    • Proprietário do Gestor de certificados (roles/certificatemanager.owner)

      Necessário para criar e gerir recursos do Gestor de certificados.

    • Administrador do balanceador de carga de computação (roles/compute.loadBalancerAdmin) ou administrador de rede de computação (roles/compute.networkAdmin)

      Obrigatório para criar e gerir o proxy de destino HTTPS.

    • Administrador de DNS (roles/dns.admin)

      Obrigatório se quiser usar o Cloud DNS como solução de DNS.

    Para mais informações, consulte o seguinte:

    Identifique os certificados a migrar

    Para identificar os certificados que quer migrar, siga estes passos:

    1. No balanceador de carga, identifique o nome do proxy de destino.

    2. Identifique os certificados que quer migrar.

      Para encontrar os certificados anexados a um proxy de destino, execute o seguinte comando:

      gcloud compute target-https-proxies describe TARGET_PROXY_NAME
      

      Substitua TARGET_PROXY_NAME pelo nome do proxy de destino.

      O resultado é semelhante ao seguinte:

      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
      

      Tome nota dos nomes dos certificados indicados no campo sslCertificates. Para mais informações, consulte o artigo Vista geral dos proxies de destino.

    3. Veja os detalhes de cada certificado:

      gcloud compute ssl-certificates --project=PROJECT_ID describe LB_CERTIFICATE_NAME
      

      Substitua o seguinte:

      • PROJECT_ID: o ID do projeto Google Cloud .
      • LB_CERTIFICATE_NAME: o nome do certificado do balanceador de carga.

      O resultado é semelhante ao seguinte:

         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
      

    Crie certificados geridos pela Google

    Crie o mesmo número de certificados geridos pela Google que os certificados do equilibrador de carga. Para um balanceador de carga global ou clássico, crie certificados globais; para um balanceador de carga regional, crie certificados regionais; e para um balanceador de carga entre regiões, crie certificados entre regiões. Antes de criar os certificados, crie uma autorização de DNS e adicione o registo CNAME à zona de DNS autoritativa do seu domínio.

    Pode optar por criar certificados geridos pela Google com autorização de DNS (recomendado) ou certificados autogeridos.

    Esta secção apresenta os passos e os comandos para criar certificados globais geridos pela Google. Para criar um certificado gerido pela Google regional ou entre regiões, consulte o artigo Criar um certificado gerido pela Google.

    Crie uma autorização de DNS

    Uma autorização de DNS abrange apenas um único nome de domínio. Tem de criar uma autorização de DNS separada para cada nome de domínio que quer usar com o certificado de destino.

    Se estiver a criar uma autorização de DNS para um certificado de caráter universal, como *.myorg.example.com, configure a autorização de DNS para o domínio principal, por exemplo, myorg.example.com.

    Consola

    Pode criar uma autorização de DNS ou anexar uma autorização de DNS existente quando cria um certificado. Para mais informações, consulte o artigo Crie um certificado gerido pela Google que faça referência à autorização de DNS.

    gcloud

    Pode criar dois tipos de autorizações de DNS: FIXED_RECORD ou PER_PROJECT_RECORD. Para mais informações, consulte o artigo Autorização de DNS.

    Autorização de DNS FIXED_RECORD

    Para criar uma FIXED_RECORD autorização de DNS, use o seguinte gcloud certificate-manager dns-authorizations create comando:

    gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
        --domain="DOMAIN_NAME" \
        --type=[FIXED_RECORD]
    

    Substitua o seguinte:

    • AUTHORIZATION_NAME: o nome da autorização de DNS.
    • DOMAIN_NAME: o nome do domínio de destino para o qual está a criar esta autorização de DNS. O nome do domínio tem de ser um nome do domínio totalmente qualificado, como myorg.example.com.

    Depois de criar a autorização de DNS FIXED_RECORD, valide-a com o comando gcloud certificate-manager dns-authorizations describe:

    gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME
    

    O resultado é semelhante ao seguinte. No resultado, encontre a secção dnsResourceRecord. Localize o registo CNAME e adicione os detalhes do registo (data, name e type) à sua configuração de 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'
    

    Autorização de DNS PER_PROJECT_RECORD

    Para criar uma PER_PROJECT_RECORD autorização de DNS, use o seguinte gcloud certificate-manager dns-authorizations create comando:

    gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
        --domain="DOMAIN_NAME" \
        --type=PER_PROJECT_RECORD
    

    Substitua o seguinte:

    • AUTHORIZATION_NAME: o nome da autorização de DNS.
    • DOMAIN_NAME: o nome do domínio de destino para o qual está a criar esta autorização de DNS. O nome do domínio tem de ser um nome do domínio totalmente qualificado, como myorg.example.com.

    Depois de criar a autorização de DNS PER_PROJECT_RECORD, valide-a com o comando gcloud certificate-manager dns-authorizations describe:

    gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME
    

    O resultado é semelhante ao seguinte. No resultado, encontre a secção dnsResourceRecord. Localize o registo CNAME e adicione os detalhes do registo (data, name e type) à sua configuração de DNS.

    createTime: '2022-01-14T13:35:00.258409106Z'
    dnsResourceRecord:
      data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog.
      name: _acme-challenge_ujmmovf2vn55tgye.myorg.example.com
      type: CNAME
    domain: myorg.example.com
    name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization
    updateTime: '2022-01-14T13:35:01.571086137Z'
    

    Terraform

    Para criar uma autorização de DNS, pode usar um recurso google_certificate_manager_dns_authorization.

    resource "google_certificate_manager_dns_authorization" "default" {
      name        = "${local.name}-dnsauth-${random_id.tf_prefix.hex}"
      description = "The default dns auth"
      domain      = local.domain
      labels = {
        "terraform" : true
      }
    }

    Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

    API

    Para criar uma autorização de DNS, faça um pedido POST ao método dnsAuthorizations.create:

    POST /v1/projects/PROJECT_ID/locations/global/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME"
    {
      "domain": "DOMAIN_NAME",
      "type": "PER_PROJECT_RECORD" //optional
    }
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do projeto Google Cloud .
    • AUTHORIZATION_NAME: o nome da autorização de DNS.
    • DOMAIN_NAME: o nome do domínio de destino para o qual está a criar esta autorização de DNS. O nome do domínio tem de ser um nome do domínio totalmente qualificado, como myorg.example.com.

    Crie um certificado gerido pela Google que faça referência à autorização de DNS

    Para criar um certificado global gerido pela Google que faça referência à autorização de DNS que criou nos passos anteriores, faça o seguinte:

    Consola

    1. Na Google Cloud consola, aceda à página Gestor de certificados.

      Aceda ao Gestor de certificados

    2. No separador Certificados, clique em Adicionar certificado.

    3. No campo Nome do certificado, introduza um nome exclusivo para o certificado.

    4. Opcional: no campo Descrição, introduza uma descrição para o certificado. A descrição permite-lhe identificar o certificado.

    5. Para Localização, selecione Global.

    6. Para Âmbito, selecione Predefinição.

    7. Para Tipo de certificado, selecione Criar certificado gerido pela Google.

    8. Para Tipo de autoridade de certificação, selecione Público.

    9. No campo Nomes de domínios, especifique uma lista de nomes de domínios do certificado separados por vírgulas. Cada nome do domínio tem de ser um nome do domínio totalmente qualificado, como myorg.example.com. O nome do domínio também pode ser um nome de domínio com carateres universais, como *.example.com.

    10. Para Tipo de autorização, selecione Autorização de DNS.

      A página apresenta as autorizações de DNS dos nomes de domínios. Se um nome de domínio não tiver uma autorização de DNS associada, siga estes passos para criar uma: