Neste tutorial, mostramos como usar o Gerenciador de certificados para implantar um certificado global gerenciado pelo Google com o Certificate Authority Service.
Os seguintes balanceadores de carga globais são compatíveis com certificados gerenciados pelo Google com o Certificate Authority Service:
- Balanceador de carga de aplicativo externo global
- Balanceador de carga de aplicativo clássico
- Balanceador de carga de rede de proxy externo global
Se você quiser fazer a implantação em balanceadores de carga entre regiões ou regionais, consulte:
Configurar a integração do serviço de CA com o Certificate Manager
Para integrar o CA Service ao Certificate Manager, siga estas etapas:
No projeto de destino Google Cloud , crie uma conta de serviço do Gerenciador de certificados:
gcloud beta services identity create --service=certificatemanager.googleapis.com \ --project=PROJECT_ID
Substitua
PROJECT_ID
pelo ID do projeto de destino Google Cloud .O comando retorna o nome da identidade de serviço criada. Veja o exemplo a seguir:
service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
Conceda à conta de serviço do Certificate Manager a função Solicitante de certificado do serviço de CA (
roles/privateca.certificateRequester
) no pool de CA de destino:gcloud privateca pools add-iam-policy-binding CA_POOL \ --location LOCATION \ --member "serviceAccount:SERVICE_ACCOUNT" \ --role roles/privateca.certificateRequester
Substitua:
CA_POOL
: o ID do pool de ACs de destino.LOCATION
: o Google Cloud local de destino.SERVICE_ACCOUNT
: o nome completo da conta de serviço que você criou na etapa 1.
Crie um recurso de configuração de emissão de certificado para seu pool de CA:
Console
No console Google Cloud , acesse a guia Configurações de emissão na página Certificate Manager.
Clique em Criar. A página Criar uma configuração de emissão de certificado é exibida.
No campo Nome, insira um nome exclusivo para a configuração de emissão de certificado.
Opcional: no campo Descrição, insira uma descrição para a configuração de emissão.
Em Local, selecione Global.
Opcional: no campo Ciclo de vida, especifique o ciclo de vida do certificado emitido em dias. O valor precisa estar entre 21 e 30 dias (inclusive).
Opcional: em Porcentagem da janela de rotação, especifique a porcentagem do ciclo de vida do certificado em que o processo de renovação começa. Para encontrar o intervalo de valores válidos, consulte Porcentagem de vida útil e período de rotação.
Opcional: na lista Algoritmo de chave, selecione o algoritmo a ser usado ao gerar a chave privada.
Na lista Pool de AC, selecione o nome do pool de AC que você quer atribuir a esse recurso de configuração de emissão de certificado.
No campo Rótulos, especifique os rótulos a serem associados ao certificado. Para adicionar um rótulo, clique em
Adicionar rótulo e especifique uma chave e um valor para o rótulo.Clique em Criar.
gcloud
gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \ --ca-pool=CA_POOL
Substitua:
ISSUANCE_CONFIG_NAME
: o nome do recurso de configuração de emissão de certificado.CA_POOL
: o caminho completo do recurso e o nome do pool de CA que você quer atribuir a esse recurso de configuração de emissão de certificados.
Para mais informações sobre recursos de configuração de emissão de certificados, consulte Gerenciar recursos de configuração de emissão de certificados.
Criar um certificado gerenciado pelo Google emitido pela instância do CA Service
Para criar um certificado gerenciado pelo Google emitido pela instância do serviço de CA, faça o seguinte:
Console
No console do Google Cloud , acesse a página Certificate Manager.
Na guia Certificados, clique em Adicionar certificado.
No campo Nome do certificado, insira um nome exclusivo para o certificado.
Opcional: no campo Descrição, insira uma descrição para o certificado. A descrição permite identificar o certificado.
Em Local, selecione Global.
Em Escopo, selecione Padrão.
Em Tipo de certificado, selecione Criar certificado gerenciado pelo Google.
Em Tipo de autoridade de certificação, selecione Privada.
No campo Nomes de domínio, especifique uma lista delimitada por vírgulas de nomes de domínio do certificado. Cada nome de domínio precisa ser totalmente qualificado, como
myorg.example.com
.Em Selecione uma configuração de emissão de certificados, escolha o nome do recurso de configuração de emissão de certificados que faz referência ao pool de AC de destino.
No campo Rótulos, especifique os rótulos a serem associados ao certificado. Para adicionar um rótulo, clique em
Adicionar rótulo e especifique uma chave e um valor para o rótulo.Clique em Criar.
O novo certificado aparece na lista.
gcloud
Para criar um certificado global gerenciado pelo Google com Certificate Authority Service,
use o comando certificate-manager certificates create
com a flag issuance-config
:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES" \ --issuance-config=ISSUANCE_CONFIG_NAME
Substitua:
CERTIFICATE_NAME
: o nome do certificado.DOMAIN_NAME
: o nome do domínio de destino. O nome de domínio precisa ser totalmente qualificado, comomyorg.example.com
.ISSUANCE_CONFIG_NAME
: o nome do recurso de configuração de emissão de certificados que faz referência ao pool de ACs de destino.
API
Crie o certificado fazendo uma solicitação POST
ao método
certificates.create
da seguinte maneira:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME" { "managed": { "domains": ["DOMAIN_NAME"], "issuanceConfig": "ISSUANCE_CONFIG_NAME", } }
Substitua:
PROJECT_ID
: o ID do projeto Google Cloud .CERTIFICATE_NAME
: o nome do certificado.DOMAIN_NAME
: o nome do domínio de destino. O nome de domínio precisa ser totalmente qualificado, comomyorg.example.com
.ISSUANCE_CONFIG_NAME
: o nome do recurso de configuração de emissão de certificados que faz referência ao pool de ACs de destino.
Verificar o status do certificado
Antes de implantar um certificado em um balanceador de carga, verifique se ele está ativo. Pode levar vários minutos para que o estado do certificado mude para ACTIVE
.
Console
No console do Google Cloud , acesse a página Certificate Manager.
Na guia Certificados, verifique a coluna Status do certificado.
gcloud
Para verificar o status do certificado, execute o comando a seguir:
gcloud certificate-manager certificates describe CERTIFICATE_NAME
Substitua CERTIFICATE_NAME
pelo nome do certificado gerenciado pelo Google de destino.
O resultado será assim:
createTime: '2021-10-20T12:19:53.370778666Z' expireTime: '2022-05-07T05:03:49Z' managed: domains: - myorg.example.com issuanceConfig: projects/myproject/locations/global/issuanceConfigs/myissuanceConfig state: ACTIVE name: projects/myproject/locations/global/certificates/mycertificate pemCertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
Para mais etapas de solução de problemas, consulte Resolver problemas do Certificate Manager.
Implantar o certificado em um balanceador de carga
Para implantar o certificado global gerenciado pelo Google, use um mapa de certificados.
Criar um CertificateMap
Crie um mapa de certificados que faça referência à entrada de mapa de certificados associada ao seu certificado:
gcloud
Para criar um mapa de certificados, use o comando gcloud certificate-manager maps create
:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Substitua CERTIFICATE_MAP_NAME
pelo nome do mapa de certificado de destino.
Terraform
Para criar um mapa de certificados, use um
recurso google_certificate_manager_certificate_map
.
Criar uma entrada de mapa de certificado
Crie uma entrada de mapa de certificado e a associe ao seu certificado e mapa de certificado:
gcloud
Para criar uma entrada de mapa de certificado, use o comando 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"
Substitua:
CERTIFICATE_MAP_ENTRY_NAME
: o nome da entrada do mapa de certificados.CERTIFICATE_MAP_NAME
: o nome do mapa de certificados a que a entrada do mapa de certificados está anexada.CERTIFICATE_NAME
: o nome do certificado que você quer associar à entrada do mapa de certificados.HOSTNAME
: o nome do host que você quer associar à entrada do mapa de certificados.Se você quiser criar um certificado que abranja um domínio curinga e um domínio raiz, especifique o nome do host com uma raiz e um caractere curinga, como
example.com
e*.example.com
. Além disso, especifique duas entradas de mapa de certificado: uma paraexample.com
e outra para*.example.com
.
Terraform
Para criar uma entrada de mapa de certificado com um domínio raiz, use um
recurso google_certificate_manager_certificate_map_entry
.
Para criar uma entrada de mapa de certificados com um domínio curinga, use um
recurso google_certificate_manager_certificate_map_entry
.
Verificar se a entrada do mapa de certificados está ativa
Verifique se a entrada do mapa de certificados está ativa antes de anexar o mapa de certificados correspondente ao proxy de destino.
Para verificar a entrada do mapa de certificados, use o comando gcloud certificate-manager maps entries describe
:
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Substitua:
CERTIFICATE_MAP_ENTRY_NAME
: o nome da entrada do mapa de certificados.CERTIFICATE_NAME
: o nome do certificado que você quer associar à entrada do mapa de certificados.
O resultado será assim:
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'
Anexe o mapa de certificado ao proxy de destino
É possível anexar o mapa de certificado a um proxy de destino novo ou atual.
gcloud
Para anexar o mapa de certificados a um novo proxy de destino, use o comando gcloud compute target-https-proxies create
:
gcloud compute target-https-proxies create PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --url-map="URL_MAP" \ --global
Substitua:
PROXY_NAME
: o nome do proxy de destino.CERTIFICATE_MAP_NAME
: o nome do mapa de certificado que faz referência à entrada do mapa de certificado e ao certificado associado.URL_MAP
: o nome do mapa de URL.
Para anexar o mapa de certificados a um proxy HTTPS de destino, use o comando gcloud compute target-https-proxies update
. Se você não souber o nome do proxy de destino atual, acesse a página Proxies de destino e anote o nome do proxy.
gcloud compute target-https-proxies update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --global
Depois de criar ou atualizar o proxy de destino, execute o comando a seguir para verificar:
gcloud compute target-https-proxies list
Terraform
Para anexar o mapa de certificado ao proxy de destino, use um
recurso google_compute_target_https_proxy
.
Ao configurar um proxy de destino, se você anexar certificados TLS (SSL) diretamente e também por um mapa de certificados, o proxy usará os certificados referenciados pelo mapa e ignorará os certificados TLS (SSL) anexados diretamente.
Solução de problemas de certificados emitidos pelo serviço de CA
Para ver as etapas de solução de problemas, consulte Problemas relacionados a certificados emitidos por uma instância do serviço de CA.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste tutorial, exclua-os.
Exclua o balanceador de carga e os recursos dele.
Exclua ou desanexe o mapa de certificados do proxy.
Para excluir o mapa de certificados, execute o seguinte comando:
gcloud compute target-https-proxies delete PROXY_NAME
Se você quiser manter o proxy HTTPS de destino, desvincule o mapa de certificados do proxy.
- Se houver certificados TLS (SSL) anexados diretamente ao proxy, a remoção do mapa de certificados fará com que o proxy volte a usar esses certificados TLS (SSL) anexados diretamente.
- Se não houver certificados TLS (SSL) anexados diretamente ao proxy, o mapa de certificados não poderá ser desanexado dele. Primeiro, anexe pelo menos um certificado TLS (SSL) diretamente ao proxy antes de desconectar o mapa de certificados.
Para desconectar o mapa de certificados, execute o seguinte comando:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-map
Substitua
PROXY_NAME
pelo nome do proxy de destino.Exclua a entrada do mapa de certificados:
gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Substitua:
CERTIFICATE_MAP_ENTRY_NAME
: o nome da entrada do mapa de certificados.CERTIFICATE_MAP_NAME
: o nome do mapa de certificados.
Exclua o mapa de certificados:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Substitua
CERTIFICATE_MAP_NAME
pelo nome do mapa de certificado.Exclua o certificado gerenciado pelo Google:
Console
No console do Google Cloud , acesse a página Certificate Manager.
Na guia Certificados, marque a caixa de seleção do certificado.
Clique em Excluir.
Na caixa de diálogo exibida, clique em Excluir para confirmar.
gcloud
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Substitua
CERTIFICATE_NAME
pelo nome do certificado de destino.Exclua o recurso de configuração de emissão de certificados:
Console
No console Google Cloud , acesse a guia Configurações de emissão na página Certificate Manager.
Marque a caixa de seleção do recurso de configuração de emissão que você quer excluir.
Clique em Excluir.
Na caixa de diálogo exibida, clique em Excluir para confirmar.
gcloud
gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
Substitua
ISSUANCE_CONFIG_NAME
pelo nome do recurso de configuração de emissão de certificado de destino.Exclua o pool de ACs.
Para excluir o pool de CA ou desativar a última CA ativada em um pool de CA referenciado por um recurso de configuração de emissão de certificado, exclua todos os recursos de configuração de emissão de certificado que referenciam o pool de CA. Para mais informações, consulte Excluir um pool de ACs.