Resolver problemas de certificados SSL

Os procedimentos de solução de problemas dependem do tipo de certificado SSL usado.

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

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

Nome comum ou nome alternativo do assunto ausente

Trusted Cloud exige que seu certificado tenha um atributo de nome comum (CN) ou de nome alternativo do assunto (SAN). Consulte Criar um CSR para mais informações.

Quando ambos os atributos estão ausentes, Trusted Cloud mostra uma mensagem de erro como esta, ao 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

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

  1. Aguarde a CA alternar para um novo certificado intermediário.
  2. Solicite um novo certificado.
  3. 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:

  1. Exporte o proxy HTTPS de destino para um arquivo temporário.

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

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

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