Resolva problemas de certificados SSL

Os procedimentos de resolução de problemas dependem do tipo de certificados SSL usados.

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

Trusted 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:

Nome comum ou nome alternativo do assunto em falta

Trusted 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, Trusted 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

Trusted 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 Trusted 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 secreta
  • REPLACEMENT_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 Trusted 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:

  1. Aguarde que a CA mude para um novo certificado intermédio.
  2. Peça-lhes um novo certificado.
  3. 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:

  1. Exporte o target-https-proxy para um ficheiro temporário.

    gcloud compute target-https-proxies export TARGET_PROXY_NAME > /tmp/proxy
    
  2. Edite o ficheiro /tmp/proxy e remova as seguintes linhas:

    sslCertificates:
    -   https://www.googleapis.com/compute/v1/projects/...
    
  3. Importe o ficheiro /tmp/proxy.

    gcloud compute target-https-proxies import TARGET_PROXY_NAME \
       --source=/tmp/proxy
    
  4. 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.