Os procedimentos de solução de problemas dependem do tipo de certificados SSL usados.
Resolver problemas em certificados gerenciados pelo Google
Para certificados gerenciados pelo Google, existem dois tipos de status:
- Status gerenciado
- Status do domínio
Status gerenciado
Para verificar o status do certificado, execute o comando a seguir:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global \ --format="get(name,managed.status)"
Os valores para status gerenciado são os seguintes:
Status gerenciado | Explicação |
---|---|
PROVISIONING |
O certificado gerenciado pelo Google foi criado e o Google Cloud está trabalhando com a autoridade de certificação para assiná-lo. O provisionamento de um certificado gerenciado pelo Google pode levar até 60 minutos a partir do momento em que as alterações de configuração do DNS e do balanceador de carga se propagarem pela Internet. Se você tiver atualizado a configuração de DNS recentemente, poderá levar um tempo significativo para que as alterações sejam propagadas totalmente. Às vezes, a propagação leva até 72 horas no mundo todo, mas geralmente leva algumas horas. Para saber mais sobre a propagação de DNS, consulte Propagação de alterações. Se o certificado permanecer no estado |
ACTIVE |
O certificado SSL gerenciado pelo Google é obtido da autoridade de certificação. Ele pode levar 30 minutos adicionais para ficar disponível e poder ser usado por um balanceador de carga. |
PROVISIONING_FAILED |
É possível ver rapidamente PROVISIONING_FAILED mesmo se
seu certificado estiver ACTIVE .
Verifique novamente o status. Se o status continuar PROVISIONING_FAILED
o certificado gerenciado pelo Google foi criado, mas a
autoridade de certificação não pode assiná-lo. Verifique se você concluiu
todas as etapas em Como usar certificados SSL gerenciados
pelo Google. O Google Cloud tenta o provisionamento até ser bem-sucedido ou o status mudar para PROVISIONING_FAILED_PERMANENTLY .
|
PROVISIONING_FAILED_PERMANENTLY |
O certificado gerenciado pelo Google é criado, mas a
autoridade de certificação não pode assiná-lo devido a um problema de configuração
do DNS ou do balanceador de carga. Nesse estado, Google Cloud não repete o provisionamento. Crie um certificado de substituição SSL gerenciado pelo Google e verifique se a substituição está associada ao proxy de destino do seu balanceador de carga. Verifique ou conclua todas as etapas em Como usar certificados SSL gerenciados pelo Google. Em seguida, será possível excluir o certificado que falhou o provisionamento permanentemente. |
RENEWAL_FAILED |
Falha na renovação do certificado gerenciado pelo Google devido a um problema no balanceador de carga ou na configuração do DNS. 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 usando um registro A/AAAA, o processo de renovação falhará. O certificado atual continua sendo exibido, mas expira em breve. Verifique a configuração. Se o status permanecer Para mais informações sobre a renovação de certificados, consulte Renovação do certificado SSL gerenciado pelo Google. |
Status do domínio
Para verificar o status do domínio, execute o comando a seguir:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global \ --format="get(managed.domainStatus)"
Os valores para status de domínio estão descritos nesta tabela.
Status do domínio | Explicação |
---|---|
PROVISIONING |
O certificado gerenciado pelo Google é criado para o domínio. Google Cloud está trabalhando com a autoridade de certificação para assinar o certificado. |
ACTIVE |
O domínio foi validado com sucesso para o provisionamento do
certificado. Se o certificado SSL for para vários domínios, o certificado só poderá ser provisionado quando todos os domínios tiverem o status
ACTIVE e o status gerenciado do
certificado também for ACTIVE .
|
FAILED_NOT_VISIBLE |
O provisionamento de certificado não foi concluído para o domínio. O problema pode ser:
PROVISIONING , Google Cloud continuará tentando
provisionar, mesmo que o status do domínio seja
FAILED_NOT_VISIBLE .
|
FAILED_CAA_CHECKING |
Falha no provisionamento de certificado devido a um problema de configuração no registro CAA do domínio. Verifique se você seguiu o procedimento correto. |
FAILED_CAA_FORBIDDEN |
Falha no provisionamento de certificado porque o registro CAA do seu domínio não especifica uma CA que o Google Cloud precisa usar. Verifique se você seguiu o procedimento correto. |
FAILED_RATE_LIMITED |
Falha no provisionamento de certificado devido a uma autoridade de certificação ter solicitações de assinatura de certificado com limitação de taxa. É possível provisionar um novo certificado, mudar para o novo certificado e excluir o antigo ou entrar em contato com o suporte do Google Cloud . |
Renovação de certificados gerenciados
Para garantir que seus certificados não falhem na etapa de validação de domínio do processo de renovação, revise os requisitos dos registros DNS A e AAAA.
Validação de domínio de várias perspectivas
OGoogle Cloud renova periodicamente seus certificados gerenciados pelo Google solicitando-os a autoridades de certificação (CAs). As CAs que o Google Cloud usa para renovar seus certificados usam um método de validação de domínio de várias perspectivas conhecido como Multi-Perspective Issuance Corroboration (MPIC). Como parte desse processo, as autoridades certificadoras verificam o controle do domínio conferindo as configurações de DNS do domínio e tentando entrar em contato com o servidor por trás do endereço IP do domínio. Essas verificações são realizadas de vários pontos de vista na Internet. Se o processo de validação falhar, os certificados gerenciados pelo Google não serão renovados. Como resultado, o balanceador de carga serve um certificado expirado para os clientes, fazendo com que os usuários do navegador encontrem erros de certificado e os clientes da API sofram falhas de conexão.
Para evitar falhas na validação de domínio de várias perspectivas devido a registros DNS mal configurados, observe o seguinte:
- Os registros A de DNS (IPv4) e AAAA (IPv6) dos seus domínios e subdomínios apontam apenas para o endereço IP (ou endereços) associado à regra (ou regras) regra de encaminhamento do balanceador de carga. A existência de outros endereços no registro pode causar falha na validação.
- A CA, que realiza a validação de registros DNS, consulta registros DNS de vários locais. Verifique se o provedor de DNS responde de forma consistente a todas as solicitações de validação de domínio global.
- O uso de GeoDNS (retornando endereços IP diferentes com base no local da solicitação) ou políticas de DNS baseadas em local pode gerar respostas inconsistentes e causar falha na validação. Se o provedor de DNS usar o GeoDNS, desative-o ou verifique se todas as regiões retornam o mesmo endereço IP do balanceador de carga.
- Você precisa especificar explicitamente os endereços IP do balanceador de carga na configuração de DNS. Camadas intermediárias, como uma CDN, podem causar um comportamento imprevisível. O endereço IP precisa ser acessível diretamente, sem redirecionamentos, firewalls ou CDNs no caminho da solicitação. Para saber mais, consulte a seção Balanceadores de carga por trás de uma CDN neste documento.
- Recomendamos que você use um verificador de propagação global de DNS de sua escolha para verificar se todos os registros DNS relevantes são resolvidos corretamente e de forma consistente em todo o mundo.
Verificar mudanças de configuração
Depois de configurar os registros DNS, verifique se eles estão corretos criando um novo certificado e conectando-o ao balanceador de carga junto com o certificado atual. Essa etapa força uma verificação imediata do provisionamento de certificado com a CA, permitindo que você verifique as mudanças de configuração em minutos. Sem isso, as renovações automáticas do certificado atual podem levar dias ou semanas, deixando incertezas sobre sua configuração.
Se o status do certificado mudar para ACTIVE
, isso indica que o certificado foi emitido, confirmando que a configuração de DNS está correta. Neste ponto, recomendamos que você remova o certificado anterior
para evitar ter dois certificados separados para o mesmo domínio. Esse processo não interrompe o tráfego para o balanceador de carga.
O novo certificado serve como uma ferramenta de validação. A criação dele confirma que a validação de domínio de várias perspectivas usando MPIC funciona corretamente na sua configuração.
Balanceadores de carga atrás de uma CDN
Para balanceadores de carga com CDN ativada, alguns provedores de CDN de terceiros no caminho da solicitação podem impedir que as solicitações de validação sejam bem-sucedidas. Isso pode acontecer se o provedor de CDN estiver fazendo proxy do tráfego HTTP(S) ativamente.
Nesses casos, recomendamos migrar seus certificados para o Certificate Manager e usar o método de autorização de DNS para provisionar certificados gerenciados pelo Google. A última abordagem não exige que a CA entre em contato com o balanceador de carga.
Resolver problemas de certificados SSL autogerenciados
Neste guia, descrevemos como solucionar problemas de configuração de certificados SSL autogerenciados.
Não é possível analisar o certificado
Google Cloud exige certificados no formato PEM. Se o certificado estiver no formato PEM, verifique o seguinte:
Para validar seu certificado, use o seguinte comando OpenSSL, substituindo CERTIFICATE_FILE
pelo caminho para o arquivo do seu certificado:
openssl x509 -in CERTIFICATE_FILE -text -noout
Se o OpenSSL não puder analisar seu certificado:
- Entre em contato com sua CA para receber ajuda.
- Crie uma nova chave privada e um certificado.
Nome comum ou nome alternativo do assunto ausente
OGoogle Cloud exige que seu certificado tenha um nome comum
(CN
) ou um nome alternativo do assunto (SAN
). Consulte Criar um
CSR para
mais informações.
Quando ambos os atributos estiverem ausentes, Google Cloud vai mostrar uma mensagem de erro como esta, ao se tentar criar um certificado autogerenciado:
ERROR: (gcloud.compute.ssl-certificates.create) Could not fetch resource:
- The SSL certificate is missing a Common Name(CN) or Subject Alternative
Name(SAN).
Não é possível analisar a chave privada
OGoogle Cloud exige chaves privadas no formato PEM que atendam aos critérios de chave privada.
Você pode validar sua chave privada usando o seguinte comando OpenSSL, substituindo
PRIVATE_KEY_FILE
pelo caminho para sua chave privada:
openssl rsa -in PRIVATE_KEY_FILE -check
As respostas a seguir indicam um problema com a chave privada:
unable to load Private Key
Expecting: ANY PRIVATE KEY
RSA key error: n does not equal p q
RSA key error: d e not congruent to 1
RSA key error: dmp1 not congruent to d
RSA key error: dmq1 not congruent to d
RSA key error: iqmp not inverse of q
Para corrigir esse problema, crie uma nova chave privada e um certificado.
Chaves privadas com senha longa
Se o OpenSSL solicitar uma senha longa, será preciso removê-la da sua chave privada antes de usá-la com Google Cloud. Use o seguinte comando OpenSSL:
openssl rsa -in PRIVATE_KEY_FILE \ -out REPLACEMENT_PRIVATE_KEY_FILE
Substitua os marcadores por valores válidos:
PRIVATE_KEY_FILE
: o caminho para a chave privada protegida com uma senha longaREPLACEMENT_PRIVATE_KEY_FILE
: o caminho em que você quer salvar uma cópia da chave privada de texto simples.
Certificados intermediários expirados
Se um certificado intermediário expirar antes do certificado do servidor (folha), isso poderá indicar que sua CA não está seguindo as práticas recomendadas.
Quando um certificado intermediário expira, seu certificado de folha usado no Google Cloud pode se tornar inválido. Isso depende do cliente SSL, como descrito a seguir:
- Alguns clientes SSL só analisam o tempo de expiração do certificado folha e ignoram os certificados intermediários expirados.
- Alguns clientes SSL tratam como inválida uma cadeia com certificados intermediários expirados e exibem um aviso.
Para resolver o problema:
- Aguarde a CA alternar para um novo certificado intermediário.
- Solicite um novo certificado.
- Faça um outro upload do novo certificado com as novas chaves.
Sua CA também pode permitir a assinatura cruzada para certificados intermediários. Verifique com sua CA para confirmar.
O expoente público RSA é muito grande
A seguinte mensagem de erro aparece quando o expoente público RSA é maior
que 65537. Use 65537
, conforme especificado na RFC 4871.
ERROR: (gcloud.compute.ssl-certificates.create) Could not fetch resource:
- The RSA public exponent is too large.
Remover certificado SSL do proxy de destino
Confira nas etapas a seguir como remover um único certificado SSL anexado ao proxy HTTPS de destino:
Exporte o proxy HTTPS de destino para um arquivo temporário.
gcloud compute target-https-proxies export TARGET_PROXY_NAME > /tmp/proxy
Edite o arquivo
/tmp/proxy
e remova as linhas a seguir:sslCertificates: - https://www.googleapis.com/compute/v1/projects/...
Importe o arquivo
/tmp/proxy
.gcloud compute target-https-proxies import TARGET_PROXY_NAME \ --source=/tmp/proxy
Opcional: exclua o certificado SSL.
gcloud compute ssl-certificates delete SSL_CERT_NAME
Substitua:
TARGET_PROXY_NAME
: o nome do recurso do proxy HTTPS de destino.SSL_CERT_NAME
: o nome do certificado SSL.