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
- 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.
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init 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.
- Funções e autorizações para o Gestor de certificados.
- Funções e autorizações IAM do Compute Engine para o Compute Engine.
- Funções e autorizações para o Cloud DNS.
No balanceador de carga, identifique o nome do proxy de destino.
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_NAMEpelo 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-mapTome nota dos nomes dos certificados indicados no campo
sslCertificates. Para mais informações, consulte o artigo Vista geral dos proxies de destino.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: MANAGEDAUTHORIZATION_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, comomyorg.example.com.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, comomyorg.example.com.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, comomyorg.example.com.Na Google Cloud consola, aceda à página Gestor de certificados.
No separador Certificados, clique em Adicionar certificado.
No campo Nome do certificado, introduza um nome exclusivo para o certificado.
Opcional: no campo Descrição, introduza uma descrição para o certificado. A descrição permite-lhe identificar o certificado.
Para Localização, selecione Global.
Para Âmbito, selecione Predefinição.
Para Tipo de certificado, selecione Criar certificado gerido pela Google.
Para Tipo de autoridade de certificação, selecione Público.
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.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:
Funções necessárias
Certifique-se de que tem as seguintes funções para concluir as tarefas neste tutorial:
Para mais informações, consulte o seguinte:
Identifique os certificados a migrar
Para identificar os certificados que quer migrar, siga estes passos:
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:
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:
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.
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:
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: