Esta página discute como criar e usar certificados SSL gerenciados pelo Google.
Os certificados SSL gerenciados pelo Google são de validação de domínio (DV) que o Google Cloud recebe e gerencia para seus domínios. Eles são compatíveis com vários nomes de host em cada certificado, e o Google os renova automaticamente.
Um certificado SSL é necessário para determinados tipos de balanceadores de carga do Google Cloud, como:
Também é possível usar certificados SSL gerenciados com o Google Kubernetes Engine. Para mais informações, consulte Como usar certificados SSL gerenciados pelo Google.
É possível criar um certificado gerenciado pelo Google antes, durante ou depois de criar o balanceador de carga. Nesta página, consideramos que você esteja criando o certificado antes ou depois de criar o balanceador de carga, sem criação simultânea. Para criar o certificado durante a criação do seu balanceador de carga, consulte as páginas de instruções sobre o balanceador de carga.
Vários domínios
Vários nomes alternativos de assunto são aceitos. Cada certificado SSL gerenciado pelo Google aceita até o número máximo de domínios por certificado SSL gerenciado pelo Google.
Se você tiver mais do que o número máximo de domínios, precisará solicitar vários certificados gerenciados pelo Google. Por exemplo, se você tentar criar um certificado gerenciado pelo Google com domínios (valor máximo +1), o Google não emitirá um certificado. Em vez disso, é necessário criar dois ou mais certificados gerenciados pelo Google e declarar explicitamente quais domínios estão associados a cada um deles.
O Google Cloud implementa a indicação do nome do servidor (SNI, na sigla em inglês), conforme definido no RFC 6066.
Se algum dos domínios ou subdomínios em um certificado gerenciado não estiver apontando para o endereço IP do balanceador de carga, o processo de renovação falhará. Para evitar falhas na renovação, verifique se todos os domínios e subdomínios apontam para o endereço IP do balanceador de carga.
Antes de começar
- Certifique-se de que você esteja familiarizado com a visão geral dos certificados SSL.
- Verifique se você tem os nomes de domínio que quer usar no seu certificado SSL gerenciado pelo Google. Se você estiver usando o Google Domains, consulte o Etapa 1: registrar um nome de domínio usando o Google Domains.
Permissões
Para seguir este guia, você precisa ser capaz de criar e modificar certificados SSL no projeto. É possível fazer isso se uma das seguintes condições for verdadeira:
- Você é um proprietário ou
editor do projeto (
roles/owner
ouroles/editor
). - Você tem o papel de administrador de segurança do Compute
(
compute.securityAdmin
) e o papel de Administrador de rede do Compute (compute.networkAdmin
) no projeto. - Você tem um papel personalizado no projeto, o que inclui as
permissões
compute.sslCertificates.*
e uma ou ambas (compute.targetHttpsProxies.*
ecompute.targetSslProxies.*
), dependendo do tipo de balanceador de carga utilizado.
Etapa 1: Criar um certificado SSL gerenciado pelo Google
É possível criar um certificado gerenciado pelo Google antes, durante ou depois de criar o balanceador de carga. Durante o processo de criação de um balanceador de carga no Console do Cloud, é possível usar o Console do Cloud para criar seu certificado. Como alternativa, é possível criar seu certificado antes ou depois de criar seu balanceador de carga. Esta etapa mostra como criar um certificado que possa ser adicionado posteriormente a um ou mais balanceadores de carga.
Caso você já tenha criado o certificado SSL gerenciado pelo Google, poderá ignorar esta etapa.
Console
É possível trabalhar com certificados SSL globais na guia Certificados da página Balanceamento de carga.
- Acesse a guia "Certificados" no Console do Google Cloud.
Acesse a guia "Certificados" - Clique em Criar certificado SSL.
- Digite um nome e uma descrição opcional para o certificado.
- Selecione Criar certificado gerenciado pelo Google.
- Adicione os domínios.
- Clique em Criar.
gcloud
Para criar um certificado SSL global gerenciado pelo Google para um balanceador de carga HTTP(S) externo ou
balanceador de carga de proxy SSL, use o comando gcloud compute ssl-certificates
create
:
gcloud compute ssl-certificates create CERTIFICATE_NAME \ --description=DESCRIPTION \ --domains=DOMAIN_LIST \ --global
Substitua os seguintes marcadores por valores válidos:
CERTIFICATE_NAME
: um nome para o certificado SSL globalDESCRIPTION
: uma descrição para o certificado SSL globalDOMAIN_LIST
: um único nome de domínio ou uma lista separada por vírgulas de nomes de domínio a serem usados neste certificado
api
Crie o método de recurso
sslCertificates.insert
do certificado gerenciado pelo Google, substituindo PROJECT_ID
pelo ID do projeto.
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/sslCertificates
{
"name": "ssl-certificate-name",
"managed": {
"domains": [
"www.example.com"
]
},
"type": "MANAGED"
}
Como verificar o status do certificado SSL gerenciado pelo Google
Console
Verifique o status dos certificados SSL na guia Certificados da página Balanceamento de carga.
- Acesse a página "Certificados" no Console do Google Cloud.
Acessar a página "Certificados" - (Opcional) Filtre a lista de certificados SSL.
- Verifique a coluna Status.
- Para ver mais detalhes, clique no nome do certificado.
gcloud
Para determinar o status de seu certificado gerenciado pelo Google, use
comandos gcloud compute
. Depois de executar o comando apropriado, observe o
seguinte:
- The managed status.
- The domain status.
Para listar seus certificados SSL gerenciados pelo Google, use o comando gcloud
compute ssl-certificates
list
com
a sinalização --global
.
gcloud compute ssl-certificates list \ --global
É possível usar o
comando gcloud compute ssl-certificates
describe
,
substituindo CERTIFICATE_NAME
:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global \ --format="get(name,managed.status, managed.domainStatus)"
Nesse momento, o status do certificado e o status do domínio são PROVISIONING
.
Depois que concluir as etapas desta página, os status serão alterados para ACTIVE
.
Para mais informações sobre os status, consulte a página de solução de problemas.
Etapa 2: criar ou atualizar o balanceador de carga
Para se tornar ACTIVE
, o certificado SSL gerenciado pelo Google precisa estar
associado a um balanceador de carga, especificamente ao proxy de destino do balanceador de carga.
Depois de criar o certificado SSL e ele estiver no estado PROVISIONING
, será
possível usá-lo durante a criação do balanceador de carga, conforme descrito nos
guias de instruções a seguir:
- Como configurar um balanceador de carga HTTPS externo simples
- Como configurar o balanceamento de carga do proxy SSL
Uma outra alternativa é usar o certificado para atualizar um balanceador de carga existente, conforme descrito aqui:
Console
Quando você atualiza um balanceador de carga HTTP(S) externo ou um balanceador de carga do proxy SSL por meio do Console do Google Cloud, o Google Cloud associa automaticamente seu certificado SSL ao proxy de destino correto.
- Acesse a página "Balanceamento de carga" no Console do Google Cloud.
Acessar a página "Balanceamento de carga" - Clique no nome do balanceador de carga.
- Clique em Editar .
- Clique em Configuração de front-end.
- Clique no front-end correto (precisa ser HTTPS, HTTP/2, SSL).
- Clique em Certificados adicionais e selecione seu certificado gerenciado pelo Google na lista suspensa.
- Clique em Criar.
gcloud
Se quiser associar um certificado SSL ao proxy HTTPS de destino para um balanceador de carga HTTP(S) externo, use o comando gcloud compute target-https-proxies update
com as sinalizações --global-ssl-certificates
e --global
:
gcloud compute target-https-proxies update TARGET_PROXY_NAME \ --ssl-certificates SSL_CERTIFICATE_LIST \ --global-ssl-certificates \ --global
Se quiser associar um certificado SSL ao proxy SSL de destino para um
balanceador de carga de proxy SSL, use o comando gcloud compute target-ssl-proxies update
:
gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \ --ssl-certificates SSL_CERTIFICATE_LIST
Substitua os marcadores por valores válidos:
TARGET_PROXY_NAME
: o nome do proxy de destino do balanceador de cargaSSL_CERTIFICATE_LIST
: uma lista delimitada por vírgulas de recursos de certificado SSL criados com o comandogcloud compute ssl-certificates create
.
Cada proxy HTTPS de destino ou proxy SSL de destino precisa referir-se a pelo menos um certificado SSL. Um proxy de destino pode referir-se a mais de um certificado SSL. Para mais detalhes, consulte Pools e proxies de destino nas cotas e limites do recurso de balanceamento de carga.
Etapa 3: verificar a associação ao proxy de destino
Depois de criar ou atualizar seu balanceador de carga, você pode garantir que o certificado SSL esteja associado ao proxy de destino do balanceador de carga.
Se você ainda não sabe o nome do proxy de destino, use a chamada gcloud compute target-https-proxies list
e os comandos
gcloud compute target-ssl-proxies list
para listar os proxies de destino no seu projeto.
Execute o comando a seguir para verificar a associação entre o certificado SSL e o proxy de destino.
Para balanceadores de carga HTTPS externos:
gcloud compute target-https-proxies describe TARGET_HTTPS_PROXY_NAME \ --global \ --format="get(sslCertificates)"
Para balanceadores de carga de proxy SSL:
gcloud compute target-ssl-proxies describe TARGET_SSL_PROXY_NAME \ --format="get(sslCertificates)"
Nesse momento, seu status de certificado gerenciado pelo Google ainda pode ser
PROVISIONING
. O Google Cloud está trabalhando com a autoridade de certificação
para emitir o certificado. Provisionar um certificado gerenciado pelo Google pode levar até
60 minutos.
Etapa 4: atualizar os registros DNS A e AAAA para apontar para o endereço IP do balanceador de carga
Os registros DNS podem ser gerenciados no site do seu registrador, host DNS ou ISP. Onde seus registros DNS são gerenciados, adicione ou atualize os registros A de DNS (IPv4) e DNS AAAA (IPv6) para seus domínios e subdomínios.
Verifique se os registros apontam para o endereço IP associado à regra ou regras de encaminhamento do balanceador de carga.
Se você estiver usando o Cloud DNS e o Google Domains, configure seus domínios e atualize os servidores de nomes.
Se tiver vários domínios em um certificado gerenciado pelo Google, adicione ou atualize registros DNS para todos os domínios e subdomínios. Todos precisam apontar para o endereço IP do seu balanceador de carga.
Depois de aguardar a conclusão da propagação do
DNS,
é possível verificar a configuração executando o comando dig
. Por exemplo,
suponha que seu domínio seja www.example.com
. Execute este comando dig
:
dig www.example.com
; <<>> DiG 9.10.6 <<>> www.example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ;; flags: ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: ;; PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: ;; SECTION: ;www.example.com. ;; SECTION: www.example.com. www.example.com.edgekey.net. www.example.com.edgekey.net. www.example.com.edgekey.net.globalredir.akadns.net. www.example.com.edgekey.net.globalredir.akadns.net. e6858.dsce9.akamaiedge.net. e6858.dsce9.akamaiedge.net. 203.0.113.5 ;; time: ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: 16:54:44 ;; rcvd: 31748 qr rd 1 OPT 512 QUESTION IN A ANSWER 1742 IN CNAME 21330 IN CNAME 3356 IN CNAME 212 IN A Query 43 msec Wed Jun 03 PDT 2020 MSG SIZE 193>
Neste exemplo, 203.0.113.5
é o endereço IP do balanceador de carga.
Além disso, execute novamente o seguinte comando:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --format="get(managed.domainStatus)"
Se o status do domínio for FAILED_NOT_VISIBLE
, consulte a seção sobre o status de domínio do certificado SSL gerenciado pelo Google na página
"Solução de problemas".
Etapa 5: testar com o OpenSSL
Depois que os status de certificado e domínio estiverem ativos, pode levar até 30 minutos para que o balanceador de carga comece a usar seu certificado SSL gerenciado pelo Google.
Para testar, execute o seguinte comando OpenSSL, substituindo DOMAIN
pelo
nome DNS e IP_ADDRESS
pelo endereço IP do
balanceador de carga.
echo | openssl s_client -showcerts -servername DOMAIN -connect IP_ADDRESS:443 -verify 99 -verify_return_error
Esse comando gera os certificados que o balanceador de carga apresenta
ao cliente. A saída precisa incluir a
cadeia de certificados, Verify return code: 0 (ok)
e outras informações detalhadas.
Renovação do certificado SSL gerenciado pelo Google
O Google Cloud provisiona certificados gerenciados válidos por 90 dias. Cerca de um mês antes da expiração, o processo de renovação do certificado começa automaticamente. Nesse caso, uma autoridade de certificação (CA) é escolhida para fazer parte do registro DNS da autorização de autoridade de certificação (CAA) do domínio e da lista de CAs.
A CA usada para a renovação pode ser diferente da CA usada para emitir a versão anterior do seu certificado gerenciado pelo Google. É possível controlar a CA que o Google Cloud usará na renovação, garantindo que o registro DNS da CAA do seu domínio especifique uma única CA da lista de CAs usadas pelos certificados gerenciados pelo Google.
Se algum dos domínios ou subdomínios em um certificado gerenciado não estiver apontando para o endereço IP do balanceador de carga, o processo de renovação falhará. Para evitar falhas na renovação, verifique se todos os domínios e subdomínios apontam para o endereço IP do balanceador de carga.
Procedimentos opcionais
Como especificar as CAs que podem emitir seu certificado gerenciado pelo Google
No software do servidor DNS, especifique as CAs que você quer que tenham permissão para emitir seu
certificado gerenciado pelo Google. Para fazer isso, crie ou modifique um registro de CAA para incluir
pki.goog
, letsencrypt.org
ou ambos. Se você não tiver um registro de CAA, o
comportamento padrão será permitir pki.goog
e letsencrypt.org
.
DOMAIN. CAA 0 issue "pki.goog" DOMAIN. CAA 0 issue "letsencrypt.org"
O suporte para certificados letsencrypt.org
é fornecido com base no
melhor esforço. Para melhor confiabilidade, permita pki.goog
e letsencrypt.org
. Se você
especificar apenas uma das CAs, somente ela será usada para criar e renovar o
certificado: Essa abordagem não é recomendada.
Quando você cria o certificado, o Google Cloud seleciona
pki.goog
ou letsencrypt.org
e utiliza esse código para emitir o certificado. Quando o
Google renovar seu certificado, talvez ele seja emitido pela outra CA,
dependendo das CAs especificadas no registro da CAA (se você tiver criado um).
Seu certificado pode ser renovado por uma CA diferente em um dos seguintes
casos:
- Você não tem um registro DNS de CAA para seu domínio.
- Você incluiu as duas CAs no registro DNS de CAA.
Para mais informações, consulte o registro de DNS da CAA da RFC.
letsencrypt.org
emite Nomes de domínio internacionalizados
(IDNs). pki.goog
não é compatível com IDNs, atualmente.
Se você estiver usando o Cloud DNS, saiba como
adicionar um registro e defina
a sinalização --type
como CAA
.
Como substituir um certificado SSL existente
Para substituir um certificado SSL existente:
Inicie o processo para criar a substituição do certificado SSL gerenciado pelo Google. Este certificado não se torna ATIVO neste momento.
Atualize o proxy de destino para que a lista de certificados referenciados inclua o certificado SSL substituto com os atuais. As etapas para atualizar o proxy de destino variam da seguinte maneira:
Aguarde a conclusão do provisionamento do certificado SSL substituto. Isso pode levar até 60 minutos. Quando o provisionamento for concluído, o status do certificado se tornará
ACTIVE
.Aguarde mais 30 minutos para garantir que o certificado de substituição esteja disponível para todos os Google Front Ends (GFEs).
Atualize o proxy de destino para remover o certificado SSL que está sendo substituído da lista de certificados referenciados. As etapas para atualizar um proxy de destino variam da seguinte maneira:
Aguarde 10 minutos e confirme se o balanceador de carga está usando o certificado SSL substituto em vez do antigo.
Atualize o proxy de destino novamente, removendo o recurso de certificado SSL antigo. É possível excluir o recurso de certificado SSL se ele não for mais referenciado por um proxy de destino.
Se você não excluir o certificado SSL antigo, ele permanecerá como ACTIVE (ativo) até expirar.
Como migrar de certificados SSL autogerenciáveis para certificados SSL gerenciados pelo Google
Ao fazer a migração de um balanceador de carga que usa certificados SSL autogerenciáveis para os gerenciados pelo Google, execute as seguintes etapas nesta sequência:
- Criar um novo certificado gerenciado pelo Google.
- Associe um novo certificado gerenciado pelo Google ao proxy de destino correto enquanto mantém a associação do proxy de destino com o certificado autogerenciado existente.
- Aguarde até que o Status do
certificado gerenciado pelo Google seja
ACTIVE
. - Aguarde 30 minutos para permitir que o novo certificado seja propagado para a disponibilização dos Google Front Ends (GFEs).
- Atualize o proxy de destino novamente, removendo o recurso de certificado autogerenciado. É possível excluir o recurso de certificado SSL autogerenciado se ele não for mais referenciado por um proxy de destino.
Excluindo certificados SSL
Antes de excluir um certificado SSL, verifique se nenhum proxy de destino HTTPS ou SSL refere-se a esse certificado. Faça isso de duas maneiras:
Exclua os proxies de destino que se referem a esse certificado.
Atualize os proxies de destino que se referem a esse certificado para excluí-lo. As etapas variam da seguinte maneira:
Para excluir um ou mais certificados SSL:
Console
É possível excluir certificados SSL na guia Certificados da página Balanceamento de carga.
- Acesse a página "Certificados" no Console do Google Cloud.
Acessar a página "Certificados" - Selecione o certificado SSL que você quer excluir.
- Clique em Excluir.
- Para confirmar, clique em Excluir novamente.
gcloud
Para excluir um certificado SSL global (para balanceadores de carga HTTP(S) externos ou
balanceadores de carga de proxy SSL), use o comando gcloud compute ssl-certificates
delete
com o comando --global
:
gcloud compute ssl-certificates delete CERTIFICATE_NAME \ --global
Substitua os marcadores por valores válidos:
CERTIFICATE_NAME
: o nome do certificado SSL
A seguir
- Para resolver problemas de certificados SSL, consulte Como solucionar problemas de certificados SSL.