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, 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_CACHE
com 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.create
certificatemanager.certs.get
certificatemanager.certs.list
certificatemanager.certs.use
certificatemanager.dnsauthorizations.create
certificatemanager.dnsauthorizations.get
certificatemanager.dnsauthorizations.list
certificatemanager.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 forneceu 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_info
efailure_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.get
certificatemanager.certs.list
certificatemanager.certs.use
networkservices.edgeCacheServices.get
networkservices.edgeCacheServices.list
networkservices.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 propaga-se a 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 para o 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 associada ao 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.
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