Depois de criar um serviço de CDN de multimédia (ou serviços), pode emitir e anexar certificados SSL (TLS) para suportar a conetividade segura em navegadores e aplicações para dispositivos móveis.
Emita um certificado gerido
Para criar um certificado gerido e anexá-lo ao seu serviço de RFC de conteúdo multimédia, tem de fazer o seguinte:
- Demonstre a propriedade ("autorização") dos domínios para os quais quer emitir certificados criando um token de desafio e adicionando um registo DNS.
- Crie um certificado do tipo
EDGE_CACHEcom um ou mais nomes de domínios com base nessa autorização. - Anexe esse certificado a um ou mais serviços de cache na extremidade.
Tem de ter as seguintes autorizações de gestão de acessos e identidade para autorizar, criar e anexar certificados a um serviço de cache na extremidade:
certificatemanager.certs.createcertificatemanager.certs.getcertificatemanager.certs.listcertificatemanager.certs.usecertificatemanager.dnsauthorizations.createcertificatemanager.dnsauthorizations.getcertificatemanager.dnsauthorizations.listcertificatemanager.dnsauthorizations.use
Os utilizadores que precisam de anexar um certificado existente a um serviço
Media CDN
precisam das autorizações de IAM certificatemanager.certs.get, certificatemanager.certs.list e certificatemanager.certs.use.
Antes de começar
- Tem de ter um nome de domínio registado no qual possa atualizar os registos de DNS públicos.
- Leia a vista geral dos certificados SSL.
Crie uma autorização de DNS
Primeiro, tem de criar uma autorização de DNS para demonstrar a propriedade do domínio antes de poder emitir certificados para o mesmo. A autorização de DNS usa o desafio DNS-01 ACME e permite-lhe emitir um certificado antes de direcionar o tráfego orientado para o utilizador para o seu serviço de cache na extremidade.
Defina o valor de domain para o nome do domínio para o qual pretende criar um certificado, da seguinte forma:
gcloud
Use o comando gcloud certificate-manager dns-authorizations:
gcloud certificate-manager dns-authorizations create DOMAIN_NAME_AUTH \
--domain="DOMAIN_NAME"
gcloud certificate-manager dns-authorizations describe DOMAIN_NAME_AUTH
A CLI gcloud devolve uma resposta com os detalhes do registo DNS que tem de adicionar.
createTime: '2022-01-14T13:35:00.258409106Z' dnsResourceRecord: data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. name: _acme-challenge.example.com. type: CNAME domain: example.com name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization updateTime: '2022-01-14T13:35:01.571086137Z'
Terraform
Se estiver a usar o Cloud DNS para o seu domínio, consulte os passos para adicionar um novo registo ao seu domínio alojado. Se estiver a usar outro fornecedor de DNS, consulte a respetiva documentação para adicionar um registo CNAME.
- Pode repetir este passo para cada domínio para o qual precisa de emitir um certificado.
- Os certificados podem conter vários domínios ou pode optar por emitir um certificado por domínio, conforme necessário. Depois de ter uma autorização para um domínio, pode usá-la para emitir certificados.
- Recomendamos que crie menos certificados no total, cada um com todos os nomes de domínio usados para o seu serviço. Isto melhora o desempenho do cliente quando usa vários domínios, porque os clientes podem beneficiar da retoma de TLS com maior frequência.
- Cada serviço de cache edge pode fazer referência a até cinco certificados. Ao emitir menos certificados, pode manter-se dentro deste limite.
Se precisar de obter os valores dos registos de DNS numa data posterior, faça um pedido
para o authorizationName que indicou quando criou a autorização de DNS:
Crie um certificado
Depois de adicionar o registo DNS que demonstra a propriedade dos domínios para os quais quer criar um certificado, pode emitir um pedido de criação de certificado.
A lista de dnsAuthorizations tem de corresponder aos nomes das autorizações existentes que criou anteriormente no processo. Se quiser adicionar vários domínios ao mesmo certificado, forneça uma lista de domains[] e dnsAuthorizations[] correspondentes quando fizer o pedido.
Para criar um certificado com uma autorização para test.example.com denominada
test-example-com:
gcloud
Use o comando gcloud certificate-manager certificates:
gcloud certificate-manager certificates create CERTIFICATE_NAME \
--domains="DOMAIN_NAME" \
--dns-authorizations="DOMAIN_NAME_AUTH" \
--scope=EDGE_CACHE
Isto cria um certificado com cada autorização de DNS no estado AUTHORIZING
e o certificado no estado PROVISIONING:
Create request issued for: [DOMAIN_NAME] Waiting for operation [projects/my-project/locations/global/operations/operatio n-1613425627385-5bb66ed644e91-3e2a2f1f-71979cf8] to complete...done. Created certificate [CERTIFICATE_NAME].
Terraform
A criação do certificado pode demorar alguns minutos (e até uma hora) a ser concluída, consoante o seguinte:
- A rapidez com que o seu fornecedor de DNS propaga as alterações de configuração.
- Quantos domínios está a tentar validar e para os quais está a criar certificados.
O campo state apresenta o estado atual do certificado:
- APROVISIONAMENTO: o certificado ainda está a ser aprovisionado. Isto deve-se provavelmente ao facto de o pedido de criação do certificado ter sido feito recentemente.
- FAILED: devolvido após várias tentativas de validar o domínio ou emitir o certificado. Para ver detalhes, consulte os campos
provisioning_issue,authorization_attempt_infoefailure_reason. - ATIVO: o domínio foi validado com êxito e o certificado foi aprovisionado.
Para verificar o estado do certificado:
gcloud
Use o comando gcloud certificate-manager certificates:
gcloud certificate-manager certificates describe CERTIFICATE_NAME
Neste exemplo, a autorização de DNS é AUTHORIZED e o estado do certificado é ACTIVE:
createTime: '2021-02-07T20:03:39.867762684Z' expireTime: '2021-03-09T19:20:41Z' managed: authorizationAttemptInfo: - domain: DOMAIN_NAME state: AUTHORIZED dnsAuthorizations: - projects/111111111111/locations/global/dnsAuthorizations/test-example-com domains: - DOMAIN_NAME state: ACTIVE name: projects/my-project/locations/global/certificates/test-example-com scope: EDGE_CACHE subjectAlternativeNames: - DOMAIN_NAME updateTime: '2021-02-07T20:03:40.297242738Z'
Depois de o certificado ser ACTIVE, pode anexá-lo a um
serviço de cache na extremidade.
Anexe um certificado a um serviço
Depois de criar um certificado gerido, pode associá-lo a um ou mais dos seus serviços de cache na extremidade.
Os certificados podem ser anexados a serviços existentes e novos atualizando a lista de edgeSslCertificates no serviço.
Tem de ter as seguintes autorizações de IAM para anexar certificados a um serviço de cache na extremidade:
certificatemanager.certs.getcertificatemanager.certs.listcertificatemanager.certs.usenetworkservices.edgeCacheServices.getnetworkservices.edgeCacheServices.listnetworkservices.edgeCacheServices.update
Para anexar um certificado a um serviço, conclua os seguintes passos.
gcloud
Execute o comando gcloud edge-cache services export para exportar o ficheiro YAML do seu serviço:
gcloud edge-cache services export MY_SERVICE \
--destination=my-service.yaml
Edite o ficheiro YAML exportado para adicionar o seu certificado:
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Execute o comando gcloud edge-cache services import:
gcloud edge-cache services import MY_SERVICE \
--source=my-service.yaml
Saída:
Request issued for: [MY_SERVICE] Updated service [MY_SERVICE]
O comando devolve uma descrição do seu serviço, incluindo a lista de edgeSslCertificates agora anexada:
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Depois de atualizar a configuração, o certificado é propagado para todas as localizações periféricas em poucos minutos. Para testar se o certificado está associado ao seu serviço de cache na extremidade antes de fazer alterações ao DNS, pode emitir um pedido em relação ao endereço IPv4 ou IPv6 associado ao seu serviço.
Substitua e remova certificados
Pode adicionar e remover certificados atualizando a lista de certificados.
Quando usa a flag --edge-ssl-certificate da CLI gcloud, os certificados só são anexados à lista de certificados existentes e não são substituídos. Isto evita que remova acidentalmente um certificado válido e ativo.
Para remover o certificado test-example-com do nosso serviço no exemplo seguinte, pode exportar o seu serviço para YAML através dos comandos de importação e exportação
name: my-service edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/test-example-com - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Os comandos seguintes mostram como exportar o serviço, remover a referência do certificado e importar o serviço atualizado.
gcloud
Use o comando gcloud edge-cache services:
gcloud edge-cache services export MY_SERVICE --destination=my-service.yaml
Exported [projects/my-project/locations/global/edgeCacheServices/MY_SERVICE] to 'my-service.yaml'.
Remova os certificados que já não quer que o serviço use através do seu editor de texto preferido:
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Guarde o ficheiro modificado e, em seguida, importe o serviço atualizado:
gcloud
Use o comando gcloud edge-cache services:
gcloud edge-cache services import MY_SERVICE --source=my-service.yaml
Request issued for: [MY_SERVICE] Updated service [MY_SERVICE].
Não existe limite para o número de serviços a que um certificado pode ser associado e cada serviço de cache edge pode fazer referência a um máximo de cinco certificados.
Certificados autogeridos
Pode carregar os seus próprios certificados para a RFC de multimédia se tiver exemplos de utilização específicos que o exijam.
Para carregar um certificado e a respetiva chave para o Gestor de certificados:
gcloud
Use o comando gcloud certificate-manager certificates. Certifique-se de que especifica --scope=EDGE_CACHE para certificados associados à RFC de multimédia na nuvem.
gcloud certificate-manager certificates create stream-example-com \
--certificate-file=CERT.pem \
--private-key-file=PRIVATE_KEY.pem \
--scope=EDGE_CACHE
Create request issued for: [stream-example-com] Created certificate [stream-example-com].
Depois de carregar o certificado, pode anexá-lo a um EdgeCacheService como faria com um certificado gerido.
Resolva problemas de emissão de certificados
Consulte o guia de resolução de problemas sobre como resolver erros comuns de autorização e emissão de certificados.
O que se segue?
- Redirecione todos os pedidos HTTP para HTTPS para encriptar as comunicações por predefinição
- Veja registos de pedidos com o registo
- Configure pedidos assinados para proteger o seu conteúdo
- Otimize as chaves de cache e os TTLs para melhorar as taxas de acerto da cache
- Configure a correspondência de rotas avançada e adicione origens adicionais