Certificados SSL do Google Cloud

Nesta página, falamos sobre os certificados SSL no contexto de criptografia em trânsito entre um balanceador de carga do proxy do Google Cloud e clientes (downstream) que se conectam ao Google Balanceador de carga do Cloud. Para ver detalhes sobre a

Métodos de configuração de certificado

O Google Cloud oferece dois métodos para configurar certificados SSL para balanceadores de carga HTTP(S) e de proxy SSL. Os dois métodos são compatíveis com certificados SSL autogerenciados e gerenciados pelo Google.

  • Recurso de certificado SSL do Compute Engine: com esse método, o proxy de destino de um balanceador de carga HTTP(S) externo, balanceador de carga HTTP(S) externo global (clássico) externo O balanceador de carga do proxy SSL, o balanceador de carga HTTP(S) externo regional ou o balanceador de carga HTTP(S) interno está configurado para fazer referência a um recurso de certificado SSL do Compute Engine. O recurso de certificado SSL contém a chave privada, o certificado correspondente e, opcionalmente, os certificados de CA. Esse método oferece suporte a todos os níveis de serviço de rede que são compatíveis com o balanceador de carga.

  • Gerenciador de certificados: com este método, o proxy de destino para um balanceador de carga HTTP(S) externo global, externo (clássico) ou externo de proxy SSL é configurado para fazer referência a um mapa de certificado. O mapa de certificados contém uma ou mais entradas de certificado. Cada entrada de certificado faz referência a um único recurso de certificado do Gerenciador de certificados, e cada recurso de certificado contém uma chave privada e um certificado. Com o Gerenciador de certificados, um proxy HTTPS ou SSL de destino pode referenciar um mapa de certificados com milhares de entradas de certificado SSL. Esse método só está disponível quando o balanceador de carga usa o nível de serviço de rede Premium. Para mais informações, consulte a Visão geral do Gerenciador de certificados.

Tipos de certificado

É possível criar seus próprios certificados ou eles podem ser gerenciados pelo Google:

  • Os certificados SSL autogerenciados são obtidos, provisionados e renovados por você. Os certificados autogerenciados podem ser qualquer um destes tipos de certificado de chave pública:

    • 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 sobre certificados SSL autogerenciados do Compute Engine, consulte Usar certificados SSL autogerenciados.

    Para mais informações sobre certificados SSL autogerenciados e o Gerenciador de certificados, consulte Fazer upload de um certificado autogerenciado na documentação do Gerenciador de certificados ou Implantar um certificado autogerenciado. certificado para ver um tutorial completo.

  • Os certificados SSL gerenciados pelo Google são aqueles que o Google Cloud recebe, gerencia e renova 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.

    Para mais informações sobre certificados SSL do Compute Engine gerenciados pelo Google, consulte Usar certificados SSL gerenciados pelo Google.

    O Gerenciador de certificados é compatível com certificados SSL gerenciados pelo Google usando autorização do balanceador de carga, autorização do DNS e integração com uma autoridade de certificação. Para mais informações sobre os certificados SSL gerenciados pelo Google, consulte Gerenciar certificados na documentação do Gerenciador de certificados.

Certificados e balanceadores de carga do Google Cloud

Veja na tabela a seguir quais balanceadores de carga do Google Cloud oferecem suporte a certificados SSL do Compute Engine autogerenciados, certificados SSL do Compute Engine gerenciados pelo Google ou Gerenciador de certificados (ambos certificados autogerenciados e gerenciados pelo Google).

Vários certificados SSL

É possível usar o mesmo proxy HTTPS ou SSL de destino para hospedar vários certificados. Isso é comum quando o balanceador de carga aceita vários nomes de domínio. É possível configurar uma única regra de encaminhamento (um único endereço IP e porta) para fazer referência a um proxy de destino comum ou várias regras de encaminhamento (diferentes endereços IP e portas) para fazer referência a um proxy de destino comum.

Vários recursos de certificado SSL do Compute Engine

Ao usar recursos de certificado SSL do Compute Engine, cada recurso de proxy de destino pode referenciar até um número máximo de certificados SSL não configuráveis por proxy de destino HTTPS ou SSL. Para mais informações, consulte Pools de destino e proxies de destino na documentação sobre cotas e limites de balanceamento de carga.

O primeiro recurso de certificado SSL do Compute Engine referenciado pelo proxy de destino de um balanceador de carga é considerado o certificado padrão (principal) do balanceador de carga.

Vários certificados SSL usando o Gerenciador de certificados

Ao usar o gerenciador de certificados, cada recurso de proxy de destino faz referência a um único mapa de certificado. Um mapa de certificado faz referência a uma ou mais entradas de certificado e é possível configurar qual entrada de certificado é o certificado padrão (principal) para o mapa. O número de mapas, entradas e certificados do Gerenciador de certificados é uma cota configurável por projeto. Para mais informações, consulte Cotas de recursos na documentação do Gerenciador de certificados.

Se você estiver usando um balanceador de carga que ofereça suporte ao Gerenciador de certificados e precisar hospedar mais de alguns certificados SSL por proxy de destino, verifique se está usando o Gerenciador de certificados em vez do certificado SSL do Compute Engine recursos.

Método de seleção de certificado

Depois que um cliente se conecta a um balanceador de carga de proxy HTTP(S) ou SSL, o cliente e o balanceador de carga negociam uma sessão TLS. Durante a negociação da sessão TLS, o cliente envia ao balanceador de carga uma lista de criptografias TLS compatíveis (no ClientHello). O balanceador de carga seleciona um certificado com o algoritmo de chave pública compatível com o cliente. O cliente também pode enviar um nome de host de indicação de nome do servidor (SNI, na sigla em inglês) para o balanceador de carga como parte dessa negociação. Às vezes, os dados do nome do host da SNI são usados para ajudar o balanceador de carga a escolher qual certificado enviar ao cliente.

Você pode simular o processo que os balanceadores de carga do proxy do Google Cloud usam para selecionar um certificado para enviar a um cliente da seguinte maneira. No seu modelo, comece com todos os certificados SSL que foram configurados no proxy HTTPS ou SSL de destino, independentemente do método de configuração.

Observação: o termo "certificado SSL padrão (principal)" é o primeiro certificado SSL do Compute Engine referenciado pelo proxy de destino ou um certificado que foi definido como principal no mapa do gerenciador de certificados referenciado pelo proxy de destino.

  1. O balanceador de carga seleciona um único candidato a certificado:

    • Se o proxy de destino do balanceador de carga fizer referência a apenas um recurso de certificado SSL do Compute Engine, ou se o proxy de destino do balanceador de carga referencia um mapa do Gerenciador de certificados com apenas uma entrada de certificado, o balanceador de carga usará apenas um certificado como candidato. O valor do nome do host SNI, se fornecido, não influencia o balanceador de carga. Prossiga para a etapa 2.

    • Se o proxy de destino do balanceador de carga fizer referência a dois ou mais recursos de certificado SSL do Compute Engine ou se o proxy de destino do balanceador de carga fizer referência a um mapa do Gerenciador de certificados com duas ou mais entradas de certificado, o balanceador de carga usará o seguinte para selecionar um único candidato a certificado:

      • Se o cliente não enviar nenhum nome de host SNI no ClientHello, o balanceador de carga usará o certificado SSL padrão (principal) como o candidato ao certificado. Prossiga para a etapa 2.

      • Se o cliente enviar um nome do host SNI que não corresponda a nenhum nome comum de certificado (CN, na sigla em inglês) e não corresponda a nenhum nome alternativo (SAN) do certificado, o balanceador de carga usará o certificado SSL padrão (principal) como{101. }candidato a certificado. Prossiga para a etapa 2.

      • O balanceador de carga seleciona um candidato a certificado que corresponde ao nome do host SNI enviado pelo cliente. A correspondência é feita por um prefixo mais longo nos atributos de certificado de nome comum (CN, na sigla em inglês) e nome alternativo do assunto (SAN, na sigla em inglês), com uma preferência por certificados ECDSA em vez de certificados RSA. Para ilustrar o método correspondente, considere um proxy de destino que referencie um certificado cuja CN seja cats.pets.example.com e outro certificado cuja CN seja dogs.pets.example.com (em inglês). Além de incluir cada valor de CN em SANs, cada certificado inclui *.pets.example.com e *.example.com.

        • Se o nome do host de SNI fornecido for cats.pets.example.com, o balanceador de carga usará o certificado com CN como cats.pets.example.com como candidato a certificado. Prossiga para a etapa 2.
        • Se o nome do host do SNI fornecido for ferrets.pets.example.com, o balanceador de carga usará um dos dois certificados como candidato, porque os dois certificados configurados têm SANs que incluem *.pets.example.com. Nessa situação, não é possível controlar quais dos dois certificados se tornam candidatos ao certificado. Prossiga para a etapa 2.
  2. O candidato ao certificado será enviado ao cliente se ele usar um algoritmo de chave pública compatível com uma das criptografias declaradas do cliente.

    • A negociação de TLS pode falhar se o cliente não for compatível com um pacote de criptografia que inclua o algoritmo de chave pública (ECDSA ou RSA) do certificado.
    • O balanceador de carga não usa os atributos notValidBefore e notValidAfter do certificado como qualquer parte do método de seleção de candidato. Por exemplo, o balanceador de carga poderá exibir um certificado expirado se ele tiver sido selecionado como o candidato a certificado.