Este tutorial orienta você no processo de implantação de certificado usando um certificado gerenciado pelo Google com DNS autorização como exemplo.
Os balanceadores de carga a seguir oferecem suporte a certificados gerenciados pelo Google com DNS autorização:
- Balanceador de carga de aplicativo externo global
- Balanceador de carga de aplicativo clássico
- Balanceador de carga de aplicativo interno entre regiões
- Balanceador de carga de rede de proxy externo global
Para obter uma comparação dos tipos compatíveis de autorização de domínio, consulte Domínio autorizações.
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 organização confiável autoridade certificadora com autorização de DNS usando 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 do Google.
Antes de começar
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
A CLI gcloud versão
465.0.0
ou mais recente é necessária para implantar o certificado. Para verificar a versão da CLI gcloud, execute o seguinte comando:gcloud --version
Para atualizar a CLI gcloud, execute o comando a seguir.
gcloud components update
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. do Gerenciador de certificados.
- Administrador do balanceador de carga do Compute ou Administrador de rede do Compute:necessá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:
- Papéis e permissões para Gerenciador de certificados
- Permissões e papéis do IAM do Compute Engine para o Compute Engine
- Controle de acesso com o IAM para o Cloud DNS
Criar um certificado gerenciado pelo Google com autorização de DNS
Conclua as etapas nesta seção para criar uma autorização de DNS e uma Certificado gerenciado pelo Google que faz referência a essa autorização de DNS.
Criar uma autorização de DNS
Crie a autorização de DNS conforme descrito nesta seção. Se você está criando um
Autorização de DNS para um certificado com caractere curinga, como *.myorg.example.com
,
configura a autorização de DNS para o domínio pai, por exemplo,
myorg.example.com
.
gcloud
gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \ --domain="DOMAIN_NAME" gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME
Para usar a autorização de DNS por projeto (Pré-lançamento), faça o seguinte: execute o seguinte comando:
gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \ --domain="DOMAIN_NAME" \ --type="PER_PROJECT_RECORD" gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME
Substitua:
AUTHORIZATION_NAME
: o nome da autorização de DNS.DOMAIN_NAME
: o nome do domínio que você está criando essa autorização de DNS. O nome de domínio deve ser um domínio nome de domínio, comomyorg.example.com
.
O comando retorna uma resposta semelhante a esta. Usar o registro CNAME da saída para o adicionar à configuração do 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'
Terraform
Para criar uma autorização de DNS, use um
Recurso google_certificate_manager_dns_authorization
.
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicionar o registro CNAME à configuração de DNS
Se você estiver usando o Google Cloud para gerenciar seu DNS, conclua as etapas nesta seção. Caso contrário, consulte a documentação do seu DNS de terceiros solução.
Antes de concluir as etapas nesta seção, verifique se você criou um zona de DNS pública.
Quando você cria uma autorização de DNS, o comando da CLI gcloud retorna registro CNAME correspondente. Você precisa adicionar esse registro CNAME à sua configuração DNS na zona DNS do domínio de destino da seguinte maneira:
gcloud
- Inicie a transação do registro DNS:
gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
Substitua DNS_ZONE_NAME
pelo nome do DNS de destino.
zona.
- Adicione o registro CNAME à zona DNS de destino:
gcloud dns record-sets transaction add CNAME_RECORD \ --name="_acme-challenge.DOMAIN_NAME." \ --ttl="30" \ --type="CNAME" \ --zone="DNS_ZONE_NAME"
Substitua:
CNAME_RECORD
: o valor de dados completo do registro CNAME retornados pelo comando da Google Cloud CLI que criou o DNS autorização.DOMAIN_NAME
: o nome do domínio de destino. O nome de domínio deve ser um nome de domínio totalmente qualificado, comomyorg.example.com
: Você também deve incluir o ponto final após o nome de domínio de destino.DNS_ZONE_NAME
: o nome da zona de DNS de destino.
Veja o exemplo a seguir:
gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \ --name="_acme-challenge.myorg.example.com." \ --ttl="30" \ --type="CNAME" \ --zone="myorg-example-com"
- Execute a transação do registro DNS para salvar as alterações:
gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
Substitua DNS_ZONE_NAME
pelo nome do DNS de destino.
zona.
Terraform
Para adicionar o registro CNAME à configuração do DNS, você pode usar um
Recurso google_dns_record_set
.
Criar um certificado gerenciado pelo Google que faça referência à autorização DNS
Para criar um certificado gerenciado pelo Google que faça referência à autorização de DNS criado nas etapas anteriores, faça o seguinte:
Console
No console do Google Cloud, acesse a página Gerenciador de certificados.
Na página exibida, selecione a guia Certificados.
Clique em Adicionar certificado.
Digite um Nome para o certificado.
O nome precisa ser exclusivo no projeto.
Opcional: digite a Descrição do certificado. Descrição ajuda a identificar um certificado específico posteriormente.
Em Local, escolha Global.
Em Escopo, escolha qualquer uma das seguintes opções:
- Padrão: escolha o padrão para Balanceador de carga de aplicativo externo global, Balanceador de carga de aplicativo clássico ou Balanceador de carga de rede de proxy externo global.
- Todas as regiões: escolha todas as regiões para um balanceador de carga de aplicativo interno entre regiões
Em Tipo de certificado, escolha Criar um certificado gerenciado pelo Google.
Em Tipo de autoridade de certificação, escolha Pública.
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
.Em Tipo de autorização, escolha Autorização de DNS. Se o nome de domínio tiver uma autorização DNS associada, ele será selecionado automaticamente. Se o nome de domínio não tiver uma autorização DNS associada, faça o seguinte:
- Clique em Criar autorização DNS ausente para exibir a opção Caixa de diálogo de autorização.
- No campo DNS Authorization Name, especifique o nome da autorização de DNS.
- Clique em Criar autorização de DNS. Verifique se o nome DNS está associado ao nome de domínio.
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 add_box Adicionar rótulo e especifique um
key
e umvalue
para o rótulo.Clique em Criar. Verifique se o novo certificado aparece na lista.
gcloud
Para um balanceador de carga de aplicativo externo global, um balanceador de carga de aplicativo clássico ou Balanceador de carga de rede de proxy externo global:
Execute este comando:
gcloud certificate-manager certificates create CERTIFICATE_NAME
--domains=DOMAIN_NAME
--dns-authorizations=AUTHORIZATION_NAME
Substitua:
CERTIFICATE_NAME
: um nome exclusivo do certificado.DOMAIN_NAME
: o domínio de destino do certificado. O nome de domínio deve ser um nome de domínio totalmente qualificado, comomyorg.example.com
:AUTHORIZATION_NAME
: o nome do DNS. autorização que você criou para este certificado.
Para criar um certificado gerenciado pelo Google com um nome de domínio curinga, use o comando a seguir. Um nome de domínio curinga. abrange todos os subdomínios de primeiro nível de um determinado domínio.
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="*.DOMAIN_NAME,DOMAIN_NAME" \ --dns-authorizations=AUTHORIZATION_NAME
Substitua:
CERTIFICATE_NAME
: um nome exclusivo do certificado.DOMAIN_NAME
: o domínio de destino do certificado. O o prefixo de ponto de asterisco (*.
) significa um certificado com caractere curinga. O domínio precisa ser um nome de domínio totalmente qualificado, comomyorg.example.com
.AUTHORIZATION_NAME
: o nome da autorização de DNS. que você criou para este certificado.
Para um balanceador de carga de aplicativo interno entre regiões:
Execute este comando:
gcloud certificate-manager certificates create CERTIFICATE_NAME
--domains=DOMAIN_NAME
--dns-authorizations=AUTHORIZATION_NAME
--scope=all-regions
Substitua:
CERTIFICATE_NAME
: um nome exclusivo do certificado.DOMAIN_NAME
: o domínio de destino do certificado. O nome de domínio deve ser um nome de domínio totalmente qualificado, comomyorg.example.com
:AUTHORIZATION_NAME
: o nome do DNS. autorização que você criou para este certificado.
Para criar um certificado gerenciado pelo Google com um nome de domínio curinga, use o comando a seguir. Um nome de domínio curinga. abrange todos os subdomínios de primeiro nível de um determinado domínio.
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="*.DOMAIN_NAME,DOMAIN_NAME" \ --dns-authorizations=AUTHORIZATION_NAME \ --scope=all-regions
Substitua:
CERTIFICATE_NAME
: um nome exclusivo do certificado.DOMAIN_NAME
: o domínio de destino do certificado. O o prefixo de ponto de asterisco (*.
) significa um certificado com caractere curinga. O nome de domínio deve ser um nome de domínio totalmente qualificado, comomyorg.example.com
:AUTHORIZATION_NAME
: o nome da autorização de DNS. que você criou para este certificado.
Terraform
Verificar se o certificado está ativo
Use o comando a seguir para verificar se o próprio certificado está ativo antes de implantá-lo no balanceador de carga. Pode levar algumas horas para que o
estado do certificado seja alterado para ACTIVE
.
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:
expireTime: '2022-05-07T05:03:49Z' managed: authorizationAttemptInfo: - domain: myorg.example.com state: AUTHORIZED dnsAuthorizations: - projects/my-project/locations/global/dnsAuthorizations/myAuth domains: - myorg.example.com state: ACTIVE name: projects/myProject/locations/global/certificates/myCert pemCertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
Implantar o certificado em um balanceador de carga
Nesta seção, apresentamos as etapas necessárias para implantar o serviço gerenciado pelo Google para um balanceador de carga.
Antes de prosseguir com as tarefas nesta seção, você precisa concluir as tarefas listadas no Criar um certificado gerenciado pelo Google com autorização de DNS nesta seção.
Dependendo do tipo de balanceador de carga, é possível implantar certificados da seguinte maneira:
- Para os balanceadores de carga a seguir, implante o certificado usando uma
mapa de certificado:
- Balanceador de carga de aplicativo externo global
- Balanceador de carga de rede de proxy externo global
- Balanceador de carga de aplicativo clássico
- Para o balanceador de carga de aplicativo interno entre regiões, implante o certificado: anexá-lo diretamente ao proxy de destino.
Implantar o certificado usando um mapa
Esta seção descreve as etapas para implantar um certificado usando um certificado mapa.
Criar um CertificateMap
Criar um mapa de certificados que faz referência à entrada do mapa do certificado que está associado ao seu certificado:
gcloud
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Substitua CERTIFICATE_MAP_NAME
pelo nome do destino.
mapa de certificados.
Terraform
Para criar um mapa de certificado, você pode usar uma
Recurso google_certificate_manager_certificate_map
.
Criar uma entrada de mapa de certificado
Crie uma entrada de mapa de certificado. e associá-la à sua certificate como além do 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 certificadoCERTIFICATE_MAP_NAME
: o nome do certificado mapeado para que esta entrada do mapa de certificado anexaCERTIFICATE_NAME
: o nome do certificado que você quer usar. para associar a esta entrada do mapa de certificadoHOSTNAME
: o nome do host que você quer associar com esta entrada de mapa de certificado
Terraform
Para criar uma entrada de mapa de certificado, você pode usar uma
Recurso google_certificate_manager_certificate_map_entry
.
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 certificadoCERTIFICATE_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:
gcloud
No Console do Google Cloud, acesse a página Proxies de destino.
Anote o nome do proxy de destino.
Anexe o mapa de certificado ao proxy de destino:
gcloud compute target-https-proxies update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --global
Substitua:
PROXY_NAME
: o nome do proxy de destino.CERTIFICATE_MAP_NAME
: o nome do certificado. mapa fazendo referência à entrada do mapa do seu certificado e ao certificado.
Terraform
Para anexar o mapa de certificado ao proxy de destino, você pode usar um
Recurso google_compute_target_https_proxy
.
Se houver certificados TLS (SSL) anexados diretamente à proxy, o proxy dá preferência aos certificados referenciados pelo mapa de certificados pelos certificados TLS (SSL) anexados diretamente.
Anexar o certificado diretamente ao proxy de destino
Para anexar o certificado diretamente ao proxy, execute o seguinte comando:
gcloud compute target-https-proxies update PROXY_NAME \ --url-map=URL_MAP \ --global \ --certificate-manager-certificates=CERTIFICATE_NAME
Substitua:
PROXY_NAME
: um nome exclusivo do proxy.URL_MAP
: o nome do mapa de URL. Você criou o mapa de URLs quando você criou o balanceador de carga.CERTIFICATE_NAME
: o nome do certificado.
Limpar
Para reverter as alterações feitas neste tutorial, faça o seguinte etapas:
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, você precisa anexe pelo menos um certificado TLS (SSL) diretamente ao proxy antes é possível desanexar 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
Substitua
PROXY_NAME
pelo nome do proxy de destino.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.
Exclua o mapa de certificado:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Substitua
CERTIFICATE_MAP_NAME
pelo nome do destino. mapa de certificados.Exclua o certificado gerenciado pelo Google:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Substitua
CERTIFICATE_NAME
pelo nome do destino. certificado.Exclua a autorização de DNS:
gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME
Substitua
AUTHORIZATION_NAME
pelo nome do destino. Autorização de DNS.