As autorizações de DNS permitem-lhe comprovar a propriedade de domínios para certificados geridos pela Google. Quando cria um certificado gerido pela Google, pode especificar uma ou mais autorizações de DNS para usar no aprovisionamento e na renovação.
Esta página descreve como criar e gerir autorizações de DNS para utilização com certificados geridos pela Google.
Para mais informações, consulte o artigo Autorizações de domínios.
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
.
Para gerir certificados de forma independente em vários projetos, pode usar a
PER_PROJECT_RECORD
autorização de DNS.
O Certificate Manager pode processar a emissão e a gestão de certificados
para cada projeto de forma independente no Google Cloud. As autorizações de DNS e os certificados que usa num projeto são autónomos e não interagem com os de outros projetos.
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
Consoante os seus requisitos, pode criar qualquer um destes 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] \ [--location="LOCATION"]
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, comomyorg.example.com
.LOCATION
: a localização Google Cloud de destino onde cria a autorização de DNS.
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 linha dnsResourceRecord
e obtenha o registo CNAME
(data
, name
e type
) para adicionar à 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 \ [--location="LOCATION"]
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, comomyorg.example.com
.LOCATION
: a localização Google Cloud de destino onde cria a autorização de DNS.
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 linha dnsResourceRecord
e obtenha o registo CNAME
(data
, name
e type
) para adicionar à 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/LOCATION/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME" { "domain": "DOMAIN_NAME", "type": "PER_PROJECT_RECORD" //optional }
Substitua o seguinte:
PROJECT_ID
: o ID do Google Cloud projeto.LOCATION
: a localização Google Cloud de destino onde cria a autorização de DNS. Para a localização global, useglobal
.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
.
Adicione o registo CNAME à configuração do DNS
Se estiver a usar uma solução DNS de terceiros para gerir o seu DNS, consulte a respetiva documentação para adicionar o registo CNAME à configuração do DNS. Se estiver a usar o Google Cloud para gerir o seu DNS, conclua os passos nesta secção.
Consola
Para criar um conjunto de registos, siga estes passos:
Na Google Cloud consola, aceda à página Zonas de DNS.
Clique no nome da zona DNS onde quer adicionar o registo.
Na página Detalhes da zona, clique em Adicionar padrão.
Na página Create record set, no campo DNS name, introduza o subdomínio da zona DNS.
Veja os exemplos seguintes:
Se o valor do campo
dnsResourceRecord.name
for_acme-challenge.myorg.example.com.
e o texto esbatido no campo Nome de DNS for.example.com.
, introduza_acme-challenge.myorg
.Se o valor do campo
dnsResourceRecord.name
for_acme-challenge.myorg.example.com.
e o texto esbatido no campo Nome de DNS for.myorg.example.com.
, introduza_acme-challenge
.Se o valor do campo
dnsResourceRecord.name
for_acme-challenge_ujmmovf2vn55tgye.myorg.example.com.
e o texto esbatido no campo Nome DNS for.myorg.example.com.
, introduza_acme-challenge_ujmmovf2vn55tgye
.
No campo Tipo de registo de recursos, selecione CNAME.
No campo TTL, introduza um valor numérico positivo para o tempo de vida do registo de recursos, que é o tempo durante o qual pode ser armazenado em cache.
Na lista Unidade de TTL, selecione a unidade de tempo, por exemplo,
30 minutes
.No campo Nome canónico, introduza o valor completo do campo
dnsResourceRecord.data
, conforme apresentado no resultado do comandogcloud certificate-manager dns-authorizations describe
.Para introduzir informações adicionais, clique em Adicionar item.
Clique em Criar.
gcloud
Quando cria uma autorização de DNS, o comando da CLI gcloud devolve o registo CNAME correspondente. Para adicionar o registo CNAME à configuração do DNS na zona de DNS do domínio de destino, siga estes passos:
Inicie a transação do registo DNS:
gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
Substitua
DNS_ZONE_NAME
pelo nome da zona DNS de destino.Adicione o registo CNAME à zona DNS de destino:
gcloud dns record-sets transaction add CNAME_RECORD \ --name="VALIDATION_SUBDOMAIN_NAME.DOMAIN_NAME." \ --ttl="30" \ --type="CNAME" \ --zone="DNS_ZONE_NAME"
Substitua o seguinte:
CNAME_RECORD
: o valor de dados completo do registo CNAME devolvido pelo comando da CLI Google Cloud que criou a autorização DNS correspondente.VALIDATION_SUBDOMAIN_NAME
: o subdomínio do prefixo da zona DNS, como_acme-challenge
. Pode copiar o nome do registo TXT do registo de comandos, conforme descrito em Crie uma autorização de DNS.gcloud certificate-manager dns-authorizations describe
DOMAIN_NAME
: o nome do domínio de destino.O nome do domínio tem de ser um nome do domínio totalmente qualificado, comomyorg.example.com
. Também tem de incluir o ponto final após o nome do domínio de destino.DNS_ZONE_NAME
: o nome da zona DNS de destino.
Veja o exemplo seguinte:
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 de registo DNS para guardar as alterações:
gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
Substitua
DNS_ZONE_NAME
pelo nome da zona DNS de destino.
Terraform
Para adicionar o registo CNAME à configuração do DNS, pode usar um
google_dns_record_set
recurso.
Atualize uma autorização de DNS
Quando atualiza uma autorização de DNS, pode fazer o seguinte:
- Especifique novas etiquetas
- Especifique uma nova descrição
gcloud
Para atualizar uma autorização de DNS, use o certificate-manager dns-authorizations
update
comando:
gcloud certificate-manager dns-authorizations update AUTHORIZATION_NAME \ [--update-labels="LABELS"] \ [--description="DESCRIPTION"] \ [--location="LOCATION"]
Substitua o seguinte:
AUTHORIZATION_NAME
: o nome da autorização de DNS.LABELS
: etiquetas para esta autorização de DNS. Esta flag é opcional.DESCRIPTION
: descrição desta autorização de DNS. Esta flag é opcional.LOCATION
: a localização Google Cloud alvo. A localização predefinida églobal
.
API
Atualize uma autorização de DNS fazendo um pedido PATCH
ao método dnsAuthorizations.patch
da seguinte forma:
PATCH /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations/AUTHORIZATION_NAME?updateMask=labels,description" { description: "DESCRIPTION", labels: { "LABEL_KEY": "LABEL_VALUE" } }
Substitua o seguinte:
PROJECT_ID
: o ID do Google Cloud projeto.LOCATION
: a localização Google Cloud alvo. A localização predefinida églobal
.AUTHORIZATION_NAME
: o nome da autorização de DNS.DESCRIPTION
: um campo opcional que especifica a descrição desta autorização de DNS.LABEL_KEY
: uma chave de etiqueta aplicada a esta autorização de DNS.LABEL_VALUE
: um valor de etiqueta aplicado a esta autorização de DNS.
Apresente autorizações de DNS
Pode ver todas as autorizações de DNS do seu projeto e os respetivos detalhes.
gcloud
Para apresentar uma lista de autorizações de DNS, use o certificate-manager dns-authorizations
list
comando:
gcloud certificate-manager dns-authorizations list \ --filter="FILTER" \ --page-size="PAGE_SIZE" \ --limit="LIMIT" \ --sort-by="SORT_BY" \ [--location="LOCATION"]
Substitua o seguinte:
FILTER
: uma expressão que restringe os resultados devolvidos a valores específicos.Por exemplo, pode filtrar os resultados pelos seguintes critérios:
- Domínio:
--filter='domain=myorg.example.com'
- Etiquetas e hora de criação:
--filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'
Para ver mais exemplos de filtragem que pode usar com o Gestor de certificados, consulte Ordenar e filtrar resultados de listas na documentação do Serviço de gestão de chaves na nuvem.
- Domínio:
PAGE_SIZE
: o número de resultados a devolver por página.LIMIT
: o número máximo de resultados a devolver.SORT_BY
: uma lista delimitada por vírgulas de camposname
pelos quais os resultados devolvidos são ordenados. A ordem de ordenação predefinida é ascendente. Para usar a ordem de ordenação descendente, adicione um til (~
) antes do campo.LOCATION
: a localização Google Cloud alvo. Para apresentar uma lista de autorizações de DNS de todas as regiões, use-
como valor. A predefinição é-
. Esta flag é opcional.
API
Liste todas as autorizações de DNS configuradas fazendo um pedido GET
ao método dnsAuthorizations.list
da seguinte forma:
GET /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY
Substitua o seguinte:
PROJECT_ID
: o ID do Google Cloud projeto.LOCATION
: a localização Google Cloud alvo. Para ver todas as autorizações de DNS em todas as localizações, especifique um único hífen (-
).FILTER
: uma expressão que restringe os resultados devolvidos a valores específicos.Por exemplo, pode filtrar os resultados pelos seguintes critérios:
- Domínio:
--filter='domain=myorg.example.com'
- Etiquetas e hora de criação:
--filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'
- Domínio:
PAGE_SIZE
: o número de resultados a devolver por página.SORT_BY
: uma lista delimitada por vírgulas de camposname
pelos quais os resultados devolvidos são ordenados. A ordem de ordenação predefinida é ascendente. Para usar a ordem de ordenação descendente, adicione um til (~
) antes do campo.
Elimine uma autorização de DNS
Para eliminar uma autorização de DNS atribuída a certificados geridos pela Google, elimine os certificados antes de eliminar a autorização de DNS.
gcloud
Para eliminar uma autorização de DNS, use o certificate-manager dns-authorizations
delete
comando:
gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME \ [--location="LOCATION"]
Substitua o seguinte:
AUTHORIZATION_NAME
: o nome da autorização de DNS.LOCATION
: a localização Google Cloud alvo. A localização predefinida églobal
.
API
Elimine uma autorização de DNS fazendo um pedido DELETE
ao método dnsAuthorizations.delete
da seguinte forma:
DELETE /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations/AUTHORIZATION_NAME
Substitua o seguinte:
PROJECT_ID
: o ID do Google Cloud projeto.LOCATION
: a localização Google Cloud alvo. A localização predefinida églobal
.AUTHORIZATION_NAME
: o nome da autorização de DNS.
O que se segue?
- Faça a gestão de certificados
- Faça a gestão dos mapeamentos de certificados
- Faça a gestão das entradas do mapa de certificados
- Faça a gestão dos recursos de configuração da emissão de certificados