Os procedimentos de resolução de problemas dependem do tipo de certificados SSL usados.
Resolva problemas com certificados geridos pela Google
Para certificados geridos pela Google, existem dois tipos de estado:
- Estado gerido
- Estado do domínio
Estado gerido
Para verificar o estado do certificado, execute o seguinte comando:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global \ --format="get(name,managed.status)"
Os valores de estado de gestão são os seguintes:
Estado gerido | Explicação |
---|---|
PROVISIONING |
O certificado gerido pela Google foi criado e Google Cloud está a funcionar com a autoridade de certificação para o assinar. O aprovisionamento de um certificado gerido pela Google pode demorar até 60 minutos a partir do momento em que as alterações à configuração do DNS e do balanceador de carga se propagaram pela Internet. Se atualizou recentemente a configuração de DNS, as alterações podem demorar um período significativo a serem totalmente propagadas. Por vezes, a propagação demora até 72 horas a nível mundial, embora, normalmente, demore algumas horas. Para mais informações sobre a propagação de DNS, consulte o artigo Propagação de alterações. Se o certificado permanecer no estado |
ACTIVE |
O certificado SSL gerido pela Google é obtido junto da autoridade de certificação. Pode demorar 30 minutos adicionais a ficar disponível para utilização por um equilibrador de carga. |
PROVISIONING_FAILED |
Pode ver brevemente PROVISIONING_FAILED , mesmo quando o seu certificado está realmente ACTIVE .
Verifique novamente o estado. Se o estado permanecer PROVISIONING_FAILED , o certificado gerido pela Google foi
criado, mas a autoridade de certificação não o consegue assinar. Certifique-se de que
concluiu todos os passos em
Usar
certificados SSL geridos pela Google. Google Cloud retries provisioning until successful or the status changes to PROVISIONING_FAILED_PERMANENTLY .
|
PROVISIONING_FAILED_PERMANENTLY |
O certificado gerido pela Google é criado, mas a autoridade de certificação não o consegue assinar devido a um problema de configuração do DNS ou do equilibrador de carga. Neste estado, Google Cloud não tenta novamente o aprovisionamento. Crie um certificado SSL gerido pela Google de substituição e certifique-se de que a substituição está associada ao proxy de destino do seu equilibrador de carga. Valide ou conclua todos os passos em Usar certificados SSL geridos pela Google. Posteriormente, pode eliminar o certificado cujo aprovisionamento falhou permanentemente. |
RENEWAL_FAILED |
A renovação do certificado gerido pela Google falhou devido a um problema com o balanceador de carga ou a configuração de DNS. Se algum dos domínios ou subdomínios num certificado gerido não estiver a apontar para o endereço IP do balanceador de carga através de um registo A/AAAA, o processo de renovação falha. O certificado existente continua a ser publicado, mas expira em breve. Verifique a sua configuração. Se o estado permanecer Para mais informações sobre a renovação de certificados, consulte o artigo Renovação de certificados SSL geridos pela Google. |
Estado do domínio
Para verificar o estado do domínio, execute o seguinte comando:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global \ --format="get(managed.domainStatus)"
Os valores do estado do domínio são descritos nesta tabela.
Estado do domínio | Explicação |
---|---|
PROVISIONING |
O certificado gerido pela Google é criado para o domínio. Google Cloud está a trabalhar com a Autoridade de certificação para assinar o certificado. |
ACTIVE |
O domínio foi validado com êxito para o aprovisionamento do certificado. Se o certificado SSL for para vários domínios, o certificado só pode ser aprovisionado quando todos os domínios tiverem o estado ACTIVE e o estado gerido do certificado também for ACTIVE .
|
FAILED_NOT_VISIBLE |
O aprovisionamento de certificados não foi concluído para o domínio. Qualquer uma das seguintes opções pode ser o problema:
PROVISIONING , Google Cloud continua a tentar
o aprovisionamento, mesmo que o estado do domínio seja
FAILED_NOT_VISIBLE .
|
FAILED_CAA_CHECKING |
O aprovisionamento do certificado falhou devido a um problema de configuração com o registo CAA do seu domínio. Certifique-se de que seguiu o procedimento correto. |
FAILED_CAA_FORBIDDEN |
O aprovisionamento do certificado falhou porque o registo CAA do seu domínio não especifica uma CA que o Google Cloud tem de usar. Google Cloud Certifique-se de que seguiu o procedimento correto. |
FAILED_RATE_LIMITED |
O aprovisionamento de certificados falhou porque uma autoridade de certificação limitou a taxa de pedidos de assinatura de certificados. Pode aprovisionar um novo certificado, mudar para a utilização do novo certificado e eliminar o certificado anterior ou pode contactar o Google Cloud apoio técnico. |
Renovação de certificado gerido
Para ajudar a garantir que os seus certificados não falham o passo de validação do domínio do processo de renovação, reveja os requisitos para os registos A e AAAA do seu DNS.
Validação de domínio com várias perspetivas
Google Cloud renova periodicamente os seus certificados geridos pela Google pedindo-os às autoridades de certificação (ACs). As ACs com as quais Google Cloud trabalha para renovar os seus certificados usam um método de validação de domínio de várias perspetivas conhecido como Multi-Perspective Issuance Corroboration (MPIC). Como parte deste processo, as autoridades de certificação validam o controlo do domínio verificando as definições de DNS do domínio e tentando contactar o servidor atrás do endereço IP do domínio. Estas validações são realizadas a partir de vários pontos de vista na Internet. Se o processo de validação falhar, os certificados geridos pela Google não são renovados. Consequentemente, o seu equilibrador de carga apresenta um certificado expirado aos clientes, o que faz com que os utilizadores do navegador encontrem erros de certificado e os clientes da API tenham falhas de ligação.
Para evitar falhas de validação de domínio com várias perspetivas devido a registos de DNS configurados incorretamente, tenha em atenção o seguinte:
- Os seus registos A de DNS (IPv4) e registos AAAA de DNS (IPv6) para os seus domínios e subdomínios apontam apenas para o endereço IP (ou endereços) associado à regra (ou regras) de encaminhamento do balanceador de carga. A existência de outros endereços no registo pode fazer com que a validação falhe.
- A AC, que realiza a validação de registos DNS, consulta registos DNS a partir de várias localizações. Certifique-se de que o seu fornecedor de DNS responde de forma consistente a todos os pedidos de validação de domínio global.
- A utilização de GeoDNS (devolver diferentes endereços IP com base na localização do pedido) ou políticas de DNS baseadas na localização pode originar respostas inconsistentes e fazer com que a validação falhe. Se o seu fornecedor de DNS usar o GeoDNS, desative-o ou certifique-se de que todas as regiões devolvem o endereço IP do balanceador de carga.
- Tem de especificar explicitamente os endereços IP do seu equilibrador de carga na configuração de DNS. As camadas intermédias, como uma RFC, podem causar um comportamento imprevisível. O endereço IP tem de estar diretamente acessível sem redirecionamentos, firewalls ou CDNs no caminho do pedido. Para saber mais, consulte a secção Equilibradores de carga atrás de uma RFC neste documento.
- Recomendamos que use um verificador de propagação global de DNS à sua escolha para verificar se todos os registos de DNS relevantes são resolvidos corretamente e de forma consistente em todo o mundo.
Valide as alterações de configuração
Depois de configurar os Registos de DNS, pode verificar se estão corretos criando um novo certificado e associando-o ao equilibrador de carga juntamente com o certificado existente. Este passo força uma verificação imediata do aprovisionamento de certificados junto da AC, o que lhe permite validar as alterações de configuração em poucos minutos. Sem esta opção, as renovações automáticas do certificado existente podem demorar dias ou semanas, o que gera incerteza acerca da sua configuração.
Se o estado do certificado se tornar ACTIVE
, indica que o certificado foi emitido, confirmando assim que a sua configuração de DNS está correta. Neste ponto, recomendamos que remova o certificado anterior para evitar ter dois certificados separados para o mesmo domínio. Este processo
não interrompe o tráfego para o equilibrador de carga.
O novo certificado serve como ferramenta de validação. A sua criação confirma que a validação de domínio com várias perspetivas através do MPIC funciona corretamente para a sua configuração.
Balanceadores de carga atrás de uma RFC
Para balanceadores de carga com a RFC ativada, alguns fornecedores de RFC de terceiros no caminho do pedido podem impedir que os pedidos de validação sejam bem-sucedidos. Isto pode acontecer se o fornecedor de RFC estiver a usar ativamente um proxy para o tráfego HTTP(S).
Nestes casos, recomendamos que migre os seus certificados para o Gestor de certificados e use o método de autorização de DNS para aprovisionar certificados geridos pela Google. A última abordagem não requer que a AC contacte o seu equilibrador de carga.
Resolva problemas de certificados SSL autogeridos
Este guia descreve como resolver problemas de configuração de certificados SSL autogeridos.
Não é possível analisar o certificado
Google Cloud requer certificados no formato PEM. Se o certificado estiver no formato PEM, verifique o seguinte:
Pode validar o seu certificado através do seguinte comando OpenSSL, substituindo
CERTIFICATE_FILE
pelo caminho para o ficheiro do certificado:
openssl x509 -in CERTIFICATE_FILE -text -noout
Se o OpenSSL não conseguir analisar o seu certificado:
- Contacte a AC para obter ajuda.
- Crie uma nova chave privada e um certificado.
Nome comum ou nome alternativo do assunto em falta
Google Cloud requer que o seu certificado tenha um nome comum (CN
) ou um atributo de nome alternativo do requerente (SAN
). Consulte o artigo Crie um CSR para
mais informações.
Quando ambos os atributos estão ausentes, Google Cloud é apresentada uma mensagem de erro semelhante à seguinte quando tenta criar um certificado autogerido:
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
Google Cloud requer chaves privadas no formato PEM que cumpram os critérios da chave privada.
Pode validar a sua chave privada através do seguinte comando OpenSSL, substituindo
PRIVATE_KEY_FILE
pelo caminho para a sua chave privada:
openssl rsa -in PRIVATE_KEY_FILE -check
As seguintes respostas indicam um problema com a sua 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 o problema, tem de criar uma nova chave privada e um certificado.
Chaves privadas com frases de acesso
Se o OpenSSL pedir uma frase de acesso, tem de remover a frase de acesso da chave privada antes de a poder usar com o Google Cloud. Pode usar o seguinte comando OpenSSL:
openssl rsa -in PRIVATE_KEY_FILE \ -out REPLACEMENT_PRIVATE_KEY_FILE
Substitua os marcadores de posição por valores válidos:
PRIVATE_KEY_FILE
: o caminho para a sua chave privada que está protegida com uma expressão secretaREPLACEMENT_PRIVATE_KEY_FILE
: o caminho onde quer guardar uma cópia da sua chave privada de texto simples
Certificados intermédios em vias de expirar
Se um certificado intermédio expirar antes do certificado do servidor (folha), isto pode indicar que a sua AC não está a seguir as práticas recomendadas.
Quando um certificado intermédio expira, o seu certificado final usado em Google Cloud pode tornar-se inválido. Isto depende do cliente SSL, da seguinte forma:
- Alguns clientes SSL apenas consideram a hora de expiração do certificado final e ignoram os certificados intermédios expirados.
- Alguns clientes SSL tratam uma cadeia com certificados intermédios expirados como inválida e apresentam um aviso.
Para resolver este problema:
- Aguarde que a CA mude para um novo certificado intermédio.
- Peça-lhes um novo certificado.
- Volte a carregar o novo certificado com as novas chaves.
A AC também pode permitir a assinatura cruzada para certificados intermédios. Consulte a sua AC para confirmar.
O expoente público RSA é demasiado grande
A seguinte mensagem de erro é apresentada quando o expoente público RSA é superior a 65537. Certifique-se de que usa 65537
, conforme especificado no RFC
4871.
ERROR: (gcloud.compute.ssl-certificates.create) Could not fetch resource:
- The RSA public exponent is too large.
Remova o certificado SSL do target-proxy
Os passos seguintes demonstram como remover um único certificado SSL anexado ao proxy https de destino:
Exporte o target-https-proxy para um ficheiro temporário.
gcloud compute target-https-proxies export TARGET_PROXY_NAME > /tmp/proxy
Edite o ficheiro
/tmp/proxy
e remova as seguintes linhas:sslCertificates: - https://www.googleapis.com/compute/v1/projects/...
Importe o ficheiro
/tmp/proxy
.gcloud compute target-https-proxies import TARGET_PROXY_NAME \ --source=/tmp/proxy
Opcional: elimine o certificado SSL.
gcloud compute ssl-certificates delete SSL_CERT_NAME
Substitua o seguinte:
TARGET_PROXY_NAME
: o nome do recurso de proxy https de destino.SSL_CERT_NAME
: o nome do certificado SSL.