Após criar um serviço do Media CDN (ou serviços), você pode emitir e anexar certificados SSL (TLS) a oferecem suporte à conectividade segura em navegadores e aplicativos para dispositivos móveis.
Emitir um certificado gerenciado
Para criar um certificado gerenciado e anexá-lo ao Media CDN faça o seguinte:
- Demonstre a propriedade ("autorização") dos domínios para os quais você quer emitir certificados criando um token de desafio e adicionando um registro DNS.
- Crie um certificado do tipo
EDGE_CACHE
com um ou mais nomes de domínio com base nessa autorização. - anexar esse certificado a um ou mais serviços de armazenamento em cache de borda;
Você precisa ter as seguintes permissões do Identity and Access Management para autorizar, criar e anexar certificados a um serviço de armazenamento em cache de borda:
certificatemanager.certs.create
certificatemanager.certs.get
certificatemanager.certs.list
certificatemanager.certs.use
certificatemanager.dnsauthorizations.create
certificatemanager.dnsauthorizations.get
certificatemanager.dnsauthorizations.list
certificatemanager.dnsauthorizations.use
Usuários que precisam anexar um certificado existente a um
CDN de mídia
exigem os parâmetros certificatemanager.certs.get
,
certificatemanager.certs.list
e certificatemanager.certs.use
permissões do IAM.
Antes de começar
- Você precisa ter um nome de domínio registrado para atualizar os registros DNS públicos
- Leia a visão geral dos certificados SSL.
Criar uma autorização de DNS
Primeiro, você deve criar uma autorização de DNS para demonstrar a propriedade de domínio antes de emitir certificados para ele. A autorização de DNS usa o parâmetro DNS-01 ACME e permite emitir um certificado antes de direcionar o tráfego voltado para o usuário ao serviço de armazenamento em cache de borda.
Defina domain
como o nome de domínio em que você quer 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 retorna uma resposta com os detalhes do registro DNS que você precisa 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 você estiver usando o Cloud DNS no seu domínio, consulte as etapas para adicionar um novo registro ao seu domínio hospedado. Se você estiver usando outro provedor de DNS, consulte o documentação para adicionar um registro CNAME.
- Você pode repetir esta etapa para cada domínio que precisar emitir uma certificado.
- Os certificados podem conter vários domínios, ou você pode emitir uma certificado por domínio, conforme necessário. Depois de ter a autorização domínio, você pode usá-lo para emitir certificados.
- Recomendamos criar menos certificados, cada um com todas as de domínio usados para seu serviço. Isso melhora a performance do cliente quando usar vários domínios, porque os clientes podem se beneficiar mais da retomada do TLS com frequência.
- Cada serviço de armazenamento em cache de borda pode referenciar até cinco certificados. Emitindo menos certificados, você fica dentro desta ou ao atingir um limite estabelecido.
Se você precisar recuperar os valores do registro DNS em uma data posterior, faça uma solicitação
para o authorizationName
fornecido ao criar o DNS.
autorização:
Criar um certificado
Depois de adicionar o registro DNS que demonstre a propriedade dos domínios que você para criar um certificado, é possível emitir uma solicitação de criação de certificado.
A lista de dnsAuthorizations
precisa corresponder aos nomes das listas
autorizações que você criou anteriormente no processo. Se você quiser adicionar vários
domínios ao mesmo certificado, forneça uma lista de domains[]
e os
dnsAuthorizations[]
ao fazer a solicitação.
Para criar um certificado usando uma autorização para test.example.com
chamada
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
Isso cria um certificado para cada autorização de DNS no 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
Pode levar alguns minutos (a até uma hora) para a criação do certificado concluído, dependendo do seguinte:
- a velocidade com que o provedor de DNS propaga mudanças de configuração;
- Para quantos domínios você está tentando validar e criar certificados.
O campo state
mostra o status atual do certificado:
- PROVISIONING: o certificado ainda está sendo provisionado. Isso é provável que a solicitação de criação do certificado tenha sido feita recentemente.
- FALHA: retornado após várias tentativas de validação do domínio.
ou emitir o certificado. Para mais detalhes, consulte
provisioning_issue
, Camposauthorization_attempt_info
efailure_reason
. - ACTIVE: o domínio foi validado e o certificado. foi provisionado.
Para verificar o status 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 certificado
o estado é 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 que o certificado for ACTIVE
, será possível anexá-lo a uma
serviço de armazenamento em cache de borda.
Anexar um certificado a um serviço
Depois de criar um certificado gerenciado, você pode
associá-lo a um ou mais serviços de armazenamento em cache próximo dos usuários finais.
Para anexar certificados a serviços novos e existentes, basta atualizar o
lista de edgeSslCertificates
no serviço.
Você precisa ter as seguintes permissões do IAM para anexar certificados para um serviço de armazenamento em cache de borda:
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 as etapas a seguir.
gcloud
Execute o comando gcloud edge-cache services export
para exportar os registros
Arquivo YAML:
gcloud edge-cache services export MY_SERVICE \ --destination=my-service.yaml
Edite o arquivo YAML exportado para adicionar 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 retorna uma descrição do serviço, incluindo o
Lista de edgeSslCertificates
anexada:
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Depois que você atualiza a configuração, o certificado é propagado para todas as extremidades locais em minutos. Para testar se o certificado está associado ao seu serviço de armazenamento em cache de borda antes de fazer alterações no DNS, é possível emitir uma solicitação o endereço IPv4 ou IPv6 associado ao seu serviço.
Substituir e remover certificados
Os certificados podem ser adicionados e removidos atualizando a lista de certificados.
Ao usar a sinalização --edge-ssl-certificate
da CLI gcloud,
certificados são apenas anexados à lista de certificados existentes, e não
substituído. Isso evita a remoção acidental de um domínio
por acidente.
Para remover o certificado test-example-com
do nosso serviço no seguinte
exemplo, você pode exportar seu serviço para YAML usando o
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 a seguir mostram como exportar o serviço e remover o 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 você não quer mais que o serviço use usando sua editor de texto preferido:
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Salve o arquivo modificado e 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 há limite para o número de serviços que um certificado pode ser associado e cada serviço de armazenamento em cache de borda pode referenciar até cinco certificados.
Certificados autogerenciados
É possível fazer upload dos seus próprios certificados para o Media CDN se você tiver para os casos de uso específicos em que ele é necessário.
Para fazer o upload de um certificado e da chave associada ao Gerenciador de certificados:
gcloud
Use o comando gcloud certificate-manager certificates
. Confirme se
você especificar --scope=EDGE_CACHE
para certificados associados a
Media CDN do Google Cloud.
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].
Após o upload do certificado, será possível anexá-lo a um EdgeCacheService como faria com um certificado gerenciado.
Resolver problemas de emissão de certificados
Consulte o guia de solução de problemas para saber como resolver erros comuns de autorização e emissão de certificados.
A seguir
- Redirecionar todas as solicitações HTTP para HTTPS para criptografar as comunicações por padrão
- Ver registros de solicitações com o Logging
- Configurar solicitações assinadas para proteger seu conteúdo
- Otimizar chaves de cache e TTLs para melhorar as taxas de ocorrência em cache
- Configure a correspondência de rota avançada. e adicionar outras origens