Implantar um certificado global gerenciado pelo Google com autorização do balanceador de carga


Neste tutorial, explicamos o processo de implantação do certificado usando um certificado gerenciado pelo Google com balanceador de carga. autorização como exemplo.

Para obter uma comparação dos tipos compatíveis de autorização de domínio, consulte Domínio autorização.

Os seguintes balanceadores de carga dão suporte a certificados gerenciados pelo Google com carga autorização do balanceador de carga:

  • 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 migrar um certificado atual para o Gerenciador de certificados, siga as etapas em Migrar certificados para o Gerenciador de certificados.

Objetivos

Nesta seção, mostramos como concluir as seguintes tarefas:

  • Criar um certificado gerenciado pelo Google emitido por uma CA publicamente confiável com do balanceador de carga com o Gerenciador de certificados.
  • Implantar o certificado em um balanceador de carga compatível usando um HTTPS de destino proxy.

Para mais informações sobre o processo de implantação de certificados, consulte Implantação geral.

Se você estiver seguindo as etapas deste tutorial para implantar um certificado para um domínio que já está veiculando tráfego de produção, lembre-se de que o tráfego para o domínio será interrompido enquanto o certificado é provisionado e ativados no balanceador de carga correspondente.

Antes de começar

  1. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  2. Você precisa ter os papéis a seguir para concluir as tarefas desta tutorial:

    • Proprietário do Gerenciador de certificados: necessário para criar e gerenciar recursos do Gerenciador de certificados.
    • Administrador do balanceador de carga do Compute ou Administrador de rede do Compute: obrigatório para criar e gerenciar proxy de destino HTTPS.
    • Administrador de DNS: obrigatório se você quiser usar o Cloud DNS como seu solução de DNS.

    Para ver mais informações, consulte os seguintes tópicos:

    .

Criar um certificado gerenciado pelo Google com autorização do balanceador de carga

Para criar um certificado gerenciado pelo Google com autorização do balanceador de carga, conclua as etapas desta seção.

Para especificar vários nomes de domínio para o certificado, insira um nome de domínio lista de nomes de domínio de destino para o certificado.

Para mais informações, consulte Permissões e papéis.

Console

  1. No console do Google Cloud, acesse a página Gerenciador de certificados.

    Acessar o Gerenciador de certificados

  2. Na página exibida, selecione a guia Certificados.

  3. Clique em Adicionar certificado.

  4. Digite um Nome para o certificado.

    O nome precisa ser exclusivo no projeto.

  5. Opcional: digite a Descrição do certificado. Descrição ajuda a identificar um certificado específico posteriormente.

  6. Em Local, escolha Global.

  7. Em Escopo, escolha Padrão.

  8. Em Tipo de certificado, escolha Criar um certificado gerenciado pelo Google.

  9. Em Tipo de autoridade de certificação, escolha Pública.

  10. Especifique os Nomes de domínio do certificado. Insira um valor delimitado por vírgulas lista dos domínios de destino. Além disso, cada nome de domínio deve ser um domínio nome de domínio, como myorg.example.com.

  11. Em Tipo de autorização, escolha Autorização do balanceador de carga.

  12. Especifique um rótulo para associar ao certificado. Você pode adicionar mais de um rótulo, se necessário. Para adicionar um marcador, clique no Adicionar rótulo e especifique um key e um value para o rótulo.

  13. Clique em Criar. Verifique se o novo certificado aparece na lista.

gcloud

gcloud certificate-manager certificates create CERTIFICATE_NAME \
--domains="DOMAIN_NAMES"

Substitua:

  • CERTIFICATE_NAME: um nome exclusivo do certificado.
  • DOMAIN_NAMES: uma lista delimitada por vírgulas do destino. domínios neste certificado. Cada nome de domínio deve ser um domínio nome de domínio, como myorg.example.com.

Terraform

Use um google_certificate_manager_certificate recurso.

resource "google_certificate_manager_certificate" "default" {
  name        = "${local.name}-rootcert-${random_id.tf_prefix.hex}"
  description = "Cert with LB authorization"
  managed {
    domains = [local.domain]
  }
  labels = {
    "terraform" : true
  }
}

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

API

Crie o certificado fazendo uma solicitação POST ao certificates.create desta maneira:

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME"
{
 "managed": {
  "domains": ["DOMAIN_NAME"],
 }
}

Substitua:

  • PROJECT_ID: o ID do projeto de destino do Google Cloud.
  • CERTIFICATE_NAME: um nome exclusivo que descreve isso certificado.
  • DOMAIN_NAME: o domínio de destino deste certificado. O nome de domínio deve ser um nome de domínio totalmente qualificado, como myorg.example.com:

Para uma visão geral do processo de implantação do certificado, consulte Implantação geral.

Implantar o certificado em um balanceador de carga

Conclua as etapas desta seção para implantar o certificado gerenciado pelo Google que você criada nas etapas anteriores para um balanceador de carga.

Criar um CertificateMap

Crie um mapa de certificados que faz referência ao mapa de certificados entrada associada à sua certificado.

gcloud

gcloud certificate-manager maps create CERTIFICATE_MAP_NAME

Substitua CERTIFICATE_MAP_NAME pelo nome do destino. mapa de certificados.

Terraform

Use um google_certificate_manager_certificate_map recurso.

resource "google_certificate_manager_certificate_map" "default" {
  name        = "${local.name}-certmap1-${random_id.tf_prefix.hex}"
  description = "${local.domain} certificate map"
  labels = {
    "terraform" : true
  }
}

Criar uma entrada de mapa de certificado

Crie uma entrada de mapa de certificado. e associá-la à sua certificate como seu mapa de certificados.

gcloud

gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME" \
    --certificates="CERTIFICATE_NAME" \
    --hostname="HOSTNAME"

Substitua:

  • CERTIFICATE_MAP_ENTRY_NAME: um nome exclusivo do entrada do mapa de certificado
  • CERTIFICATE_MAP_NAME: o nome do mapa de certificado ao qual esta entrada do mapa de certificado é anexada
  • CERTIFICATE_NAME: o nome do certificado quero associar a esta entrada do mapa de certificado
  • HOSTNAME: o nome do host que você quer associar com esta entrada de mapa de certificado

Terraform

Use um google_certificate_manager_certificate_map_entry recurso.

resource "google_certificate_manager_certificate_map_entry" "default" {
  name        = "${local.name}-first-entry-${random_id.tf_prefix.hex}"
  description = "example certificate map entry"
  map         = google_certificate_manager_certificate_map.default.name
  labels = {
    "terraform" : true
  }
  certificates = [google_certificate_manager_certificate.default.id]
  hostname     = local.domain
}

Verificar se a entrada do mapa de certificado está ativa

Use o comando a seguir para verificar se a entrada do mapa de certificados está ativa antes de anexar o mapa de certificado correspondente ao proxy de destino:

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

Substitua:

  • CERTIFICATE_MAP_ENTRY_NAME: o nome do destino. entrada do mapa de certificado
  • CERTIFICATE_MAP_NAME: o nome do certificado mapeado para que esta entrada do mapa de certificado anexa

O comando retorna uma saída semelhante a esta:

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'

Anexar o mapa de certificado ao proxy de destino

Anexe o mapa de certificado configurado ao proxy de destino.

Console

  1. No Console do Google Cloud, acesse a página Proxies de destino.

Ir para destino proxies

  1. Anote o nome do proxy de destino.

  2. Anexe o mapa de certificado ao proxy de destino:

   gcloud compute target-https-proxies update PROXY_NAME \
       --certificate-map="CERTIFICATE_MAP_NAME"
   

Substitua:

*   `PROXY_NAME`: the name of the target proxy
*   `CERTIFICATE_MAP_NAME`: the name of the certificate
    map referencing your certificate map entry and its associated
    certificate

Terraform

Use um google_compute_target_https_proxy recurso.

resource "google_compute_target_https_proxy" "default" {
  name            = "test-proxy"
  certificate_map = "//certificatemanager.googleapis.com/${google_certificate_manager_certificate_map.default.id}"
  url_map         = google_compute_url_map.default.id
}

Se houver certificados TLS (SSL) anexados diretamente ao proxy, o proxy dá preferência aos certificados referenciados pelo mapa de certificados pelos certificados TLS (SSL) anexados diretamente.

Aguardar até que o certificado seja ativado

Depois de anexar o certificado ao proxy de destino, pode levar até várias horas para que o certificado seja emitido e seu status mude para ACTIVE: Quando o status mudar para ACTIVE, o carregamento poderá levar até 30 minutos. para começar a usar o certificado.

Use o seguinte comando para verificar o status do certificado:

gcloud certificate-manager certificates describe CERTIFICATE_NAME

Substitua CERTIFICATE_NAME pelo nome do destino. Certificado gerenciado pelo Google.

O comando retorna uma saída semelhante a esta:

createTime: '2021-10-20T12:19:53.370778666Z'
expireTime: '2022-05-07T05:03:49Z'
managed:
  authorizationAttemptInfo:
  -   domain: myorg.example.com
    state: AUTHORIZED
  domains:
  -   myorg.example.com
    state: ACTIVE
name: projects/myProject/locations/global/certificates/myCert
sanDnsnames:
  -   myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Se o status do certificado não tiver mudado para ACTIVE após várias horas, verifique o seguinte:

Para mais etapas de solução de problemas, consulte Como solucionar problemas de SSL do Google Cloud.

Limpar

Para reverter as alterações feitas neste tutorial, faça o seguinte etapas:

  1. Remover o mapa de certificado do proxy.

    Antes de desanexar o mapa de certificado, observe o seguinte:

    • Se houver certificados TLS (SSL) anexados diretamente ao proxy, remover o mapa de certificado faz com que o proxy retome o uso deles certificados TLS (SSL) anexados diretamente.
    • Se não houver certificados TLS (SSL) anexados diretamente ao proxy, o mapa de certificado não pode ser removido do proxy. Primeiro, é necessário anexar um certificado TLS (SSL) diretamente para o proxy antes que você possa o mapa de certificado.

    Para desanexar o mapa de certificado, execute o seguinte comando:

    gcloud compute target-https-proxies update PROXY_NAME \
       --clear-certificate-map
    
  2. Exclua a entrada do mapa de certificado:

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

    Substitua:

    • CERTIFICATE_MAP_ENTRY_NAME: o nome do destino. entrada do mapa de certificado
    • CERTIFICATE_MAP_NAME: o nome do destino. mapa de certificados
  3. Exclua o mapa de certificado:

    gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
    

    Substitua CERTIFICATE_MAP_NAME pelo nome do destino. mapa de certificados.

  4. Exclua o certificado gerenciado pelo Google:

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

    Substitua CERTIFICATE_NAME pelo nome do destino. certificado.

A seguir