Visão geral dos certificados SSL

O Transport Layer Security (TLS) é um protocolo de criptografia usado em certificados SSL para proteger as comunicações de rede.

O Google Cloud usa certificados SSL para fornecer privacidade e segurança de um cliente para um balanceador de carga. Para isso, o balanceador de carga precisa ter um certificado SSL e sua chave privada correspondente. A comunicação entre o cliente e o balanceador de carga permanece particular e ilegível para qualquer um que não tenha essa chave privada.

Balanceadores de carga

Veja na tabela a seguir um resumo dos tipos de balanceadores de carga do Google Cloud que exigem certificados SSL.

Tipo de balanceador de carga Protocolo do cliente ao balanceador de carga
Balanceadores de carga HTTPS internos HTTPS ou HTTP/2
Balanceadores de carga HTTPS externos HTTPS ou HTTP/2
Balanceadores de carga de proxy SSL SSL (TLS)

Certificados SSL autogerenciados e gerenciados pelo Google

Você pode receber seus próprios certificados autogerenciados ou usar certificados gerenciados pelo Google, que o Google gera e gerencia para você.

  • Os certificados SSL autogerenciados são obtidos, provisionados e renovados por você. Esse tipo de certificado pode ser um dos seguintes:

    • Validação de domínio (DV, na sigla em inglês)
    • Validação da organização (OV, na sigla em inglês)
    • Validação estendida (EV, na sigla em inglês)

    Para mais informações, consulte Certificado de chave pública.

  • Os certificados SSL gerenciados pelo Google são obtidos e gerenciados pelo Google Cloud, nos seus domínios, e renovados automaticamente. Os certificados gerenciados pelo Google são de validação de domínio (DV, na sigla em inglês). Eles não comprovam a identidade de uma organização ou indivíduo associado ao certificado e não são compatíveis com nomes comuns de caracteres curinga.

Nos balanceadores de carga de proxy SSL ou HTTP(S) externos, é possível referenciar o certificado SSL gerenciado pelo Google, o autogerenciado ou os dois em um proxy de destino. Isso pode ser feito em qualquer ordem de certificado. No caso do balanceador de carga HTTP(S) interno, você precisa usar certificados autogerenciados.

Para informações sobre como configurar certificados SSL para seus balanceadores de carga, consulte os seguintes guias:

Vários certificados SSL

É possível configurar até o número máximo de certificados SSL por HTTPS ou proxy SSL de destino. Use vários certificados SSL se houver veiculação a partir de múltiplos domínios por meio da mesma porta e endereço IP do balanceador de carga, e quando quiser utilizar um certificado SSL diferente em cada domínio.

Quando você especifica mais de um certificado SSL, o primeiro da lista é considerado o principal certificado SSL associado ao proxy de destino.

Quando um cliente envia uma solicitação, o balanceador de carga usa o nome de host SNI especificado pelo cliente para selecionar o certificado que será utilizado na negociação da conexão SSL.

Sempre que possível, o balanceador de carga seleciona um certificado com o nome comum (CN, na sigla em inglês) ou nome alternativo do assunto (SAN, na sigla em inglês) correspondentes ao nome de host SNI especificado pelo cliente. RSA e ECDSA são tipos de assinaturas digitais, e o software cliente precisa ser capaz de usá-las.

Se não for possível selecionar os certificados disponíveis, ou se o cliente não especificar um nome de host SNI, o balanceador de carga negociará o SSL usando o certificado principal (o primeiro da lista).

Vários certificados SSL (clique para ampliar)
Vários certificados SSL (clique para ampliar)

Criptografia do balanceador de carga nos back-ends

Para balanceamento de carga HTTP(S), de proxy TCP e de proxy SSL, o Google criptografa automaticamente o tráfego entre o Google Front ends (GFEs) e os back-ends que residem no Google Cloud.

Além dessa criptografia no nível da rede, é possível usar um protocolo seguro como o protocolo de serviço de back-end. Os protocolos seguros incluem SSL, HTTPS ou HTTP/2 (usando TLS). É possível usá-los para balanceadores de carga baseados em GFE e também para o balanceamento de carga HTTP(S) interno e o Traffic Director.

Quando um balanceador de carga se conecta aos back-ends usando um protocolo de serviço de back-end seguro, o GFE é o cliente SSL ou HTTPS. Da mesma forma, quando um proxy do lado do cliente configurado com Traffic Director se conecta aos back-ends usando um protocolo de serviço de back-end seguro, o proxy é o cliente SSL ou HTTPS.

Um protocolo seguro para se conectar a instâncias de back-end é recomendado nos seguintes casos:

  • Quando você precisa de uma conexão criptografada e auditável do balanceador de carga (ou do Traffic Director) para as instâncias de back-end

  • Quando o balanceador de carga se conecta a uma instância de back-end fora do Google Cloud (por meio de um NEG da Internet). A comunicação com um back-end do NEG da Internet pode transitar pela Internet pública. Quando o balanceador de carga se conecta a um NEG da Internet, o certificado público assinado pela CA precisa atender aos requisitos de validação.

Para usar um protocolo seguro entre o balanceador de carga e os back-ends, lembre-se dos seguintes requisitos:

  • Os serviços de back-end do balanceador de carga precisam usar o protocolo SSL (TLS), HTTPS ou HTTP/2.

  • O software da instância de back-end precisa gerar tráfego usando o mesmo protocolo do serviço de back-end. Por exemplo, se o serviço de back-end usa HTTPS, configure as instâncias de back-end para usar HTTPS. Se você usar o protocolo HTTP/2, seus back-ends precisarão usar TLS. Para instruções de configuração, consulte a documentação do software da instância de back-end.

  • É necessário instalar chaves privadas e certificados nas instâncias de back-end. Esses certificados não precisam corresponder ao certificado SSL do balanceador de carga. Para instruções de instalação, consulte a documentação do software da instância de back-end

  • O software em execução nas instâncias de back-end precisa operar como um servidor SSL ou HTTPS. Para instruções de configuração, consulte a documentação do software da instância de back-end.

Ao usar back-ends de grupo de instâncias ou NEG zonal, lembre-se:

  • Quando um GFE inicia uma sessão TLS para back-ends, o GFE não usa a extensão de indicação de nome do servidor (SNI).

  • Quando um GFE se conecta a back-ends que estão no Google Cloud, o GFE aceita qualquer certificado apresentado pelos seus back-ends. Os GFEs não realizam validação de certificado. Por exemplo, o certificado é tratado como válido mesmo nas seguintes circunstâncias:

    • O certificado é autoassinado
    • O certificado é assinado por uma autoridade de certificação (CA, na sigla em inglês) desconhecida
    • O certificado expirou ou ainda não é válido
    • Os atributos CN e subjectAlternativeName não correspondem a um cabeçalho Host ou registro PTR DNS.
Saiba mais sobre a criptografia do Google em Criptografia em trânsito no Google Cloud.

Balanceadores de carga, certificados SSL e proxies de destino

Um recurso de certificado SSL do Google Cloud contém uma chave privada e o próprio certificado SSL.

Os proxies de destino representam a conexão lógica entre o front-end de um balanceador de carga e o respectivo serviço de back-end (para balanceadores de carga de proxy SSL) ou mapa de URL (para balanceadores de carga HTTPS).

Veja no diagrama a seguir como o proxy de destino e os certificados SSL associados se encaixam na arquitetura de balanceamento de carga.

Proxy de destino, certificado SSL e outros componentes do balanceador de carga (clique para ampliar)
Proxy de destino, certificado SSL e outros componentes do balanceador de carga (clique para ampliar)

Escopo do certificado SSL

O Google Cloud tem dois escopos de recursos de certificado SSL: regional e global.

Tipo de balanceador de carga Escopo de recurso de certificado SSL Referência da gcloud Referência da API
Balanceadores de carga HTTPS internos Regional gcloud compute ssl-certificates --region regionSslCertificates
Balanceadores de carga HTTPS externos Global gcloud compute ssl-certificates --global sslCertificates
Balanceadores de carga de proxy SSL Global gcloud compute ssl-certificates --global sslCertificates

Proxies de destino

Os certificados SSL são associados aos tipos de proxies de destino a seguir:

Tipo de balanceador de carga Tipo de proxy de destino Referência da gcloud Referência da API
Balanceadores de carga HTTPS internos Regional gcloud compute target-https-proxies --region regionTargetHttpsProxies
Balanceadores de carga HTTPS externos Global gcloud compute target-https-proxies --global targetHttpsProxies
Balanceadores de carga de proxy SSL Global gcloud compute target-ssl-proxies --global targetSslProxies

Limitações

  • Cada proxy de destino aceita um número limitado de certificados SSL. Para mais informações, consulte o limite de certificados SSL por proxy SSL ou HTTPS de destino.

  • Cada certificado gerenciado pelo Google aceita um número limitado de domínios. Para mais informações, consulte o limite de domínios por certificado SSL gerenciado pelo Google.

  • Quando você usa certificados gerenciados pelo Google com balanceamento de carga de proxy SSL, a regra de encaminhamento do balanceador precisa utilizar a porta TCP 443 para que o certificado seja renovado automaticamente.

  • Os balanceadores de carga do Google Cloud não são compatíveis com a autenticação baseada em certificado do cliente (TLS mútuo, mTLS).

  • Os certificados SSL gerenciados pelo Google não são compatíveis com caracteres curinga.

A seguir