Solucionar problemas de certificados SSL

Los procedimientos para solucionar problemas dependen del tipo de certificados SSL que se utilicen.

Solucionar problemas de certificados SSL autogestionados

En esta guía se describe cómo solucionar problemas de configuración de certificados SSL autogestionados.

No se ha podido analizar el certificado

Trusted Cloud requiere certificados en formato PEM. Si el certificado tiene formato PEM, comprueba lo siguiente:

Puedes validar tu certificado con el siguiente comando de OpenSSL. Sustituye CERTIFICATE_FILE por la ruta del archivo de tu certificado:

openssl x509 -in CERTIFICATE_FILE -text -noout

Si OpenSSL no puede analizar tu certificado:

Falta el nombre común o el nombre alternativo del sujeto

Trusted Cloud requiere que tu certificado tenga un nombre común (CN) o un atributo de nombre alternativo del sujeto (SAN). Consulta Crear una CSR para obtener más información.

Si faltan ambos atributos, Trusted Cloud muestra un mensaje de error como el siguiente cuando intentas crear un certificado autogestionado:

ERROR: (gcloud.compute.ssl-certificates.create) Could not fetch resource:
 -   The SSL certificate is missing a Common Name(CN) or Subject Alternative
   Name(SAN).

No se puede analizar la clave privada

Trusted Cloud requiere claves privadas con formato PEM que cumplan los criterios de clave privada.

Puedes validar tu clave privada con el siguiente comando de OpenSSL. Sustituye PRIVATE_KEY_FILE por la ruta a tu clave privada:

    openssl rsa -in PRIVATE_KEY_FILE -check

Las siguientes respuestas indican que hay un problema con tu clave 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 solucionar el problema, debes crear una nueva clave privada y un certificado.

Claves privadas con contraseñas

Si OpenSSL te pide una contraseña, tendrás que eliminarla de tu clave privada para poder usarla con Trusted Cloud. Puedes usar el siguiente comando de OpenSSL:

openssl rsa -in PRIVATE_KEY_FILE \
    -out REPLACEMENT_PRIVATE_KEY_FILE

Sustituye los marcadores de posición por valores válidos:

  • PRIVATE_KEY_FILE: la ruta a tu clave privada protegida con una contraseña.
  • REPLACEMENT_PRIVATE_KEY_FILE: la ruta en la que quieres guardar una copia de tu clave privada de texto sin formato.

Certificados intermedios a punto de caducar

Si un certificado intermedio caduca antes que el certificado de servidor (hoja), puede que tu AC no esté siguiendo las prácticas recomendadas.

Cuando caduca un certificado intermedio, el certificado de hoja que se usa enTrusted Cloud puede dejar de ser válido. Esto depende del cliente SSL, como se indica a continuación:

  • Algunos clientes SSL solo tienen en cuenta la hora de vencimiento del certificado de hoja y no tienen en cuenta los certificados intermedios caducados.
  • Algunos clientes SSL tratan una cadena con certificados intermedios caducados como no válida y muestran una advertencia.

Para solucionar este problema, sigue estos pasos:

  1. Espera a que la AC cambie a un nuevo certificado intermedio.
  2. Solicita un nuevo certificado.
  3. Vuelve a subir el nuevo certificado con las nuevas claves.

Tu CA también puede permitir la firma cruzada de certificados intermedios. Ponte en contacto con tu CA para confirmarlo.

El exponente público de RSA es demasiado grande

Aparece el siguiente mensaje de error cuando el exponente público RSA es mayor que 65537. Asegúrate de usar 65537, tal como se especifica en RFC 4871.

ERROR: (gcloud.compute.ssl-certificates.create) Could not fetch resource:
 -   The RSA public exponent is too large.

Quitar el certificado SSL de target-proxy

En los siguientes pasos se muestra cómo quitar un certificado SSL de un proxy HTTPS de destino:

  1. Exporta el target-https-proxy a un archivo temporal.

    gcloud compute target-https-proxies export TARGET_PROXY_NAME > /tmp/proxy
    
  2. Edita el archivo /tmp/proxy y elimina las siguientes líneas:

    sslCertificates:
    -   https://www.googleapis.com/compute/v1/projects/...
    
  3. Importa el archivo /tmp/proxy.

    gcloud compute target-https-proxies import TARGET_PROXY_NAME \
       --source=/tmp/proxy
    
  4. Opcional: Elimina el certificado SSL.

    gcloud compute ssl-certificates delete SSL_CERT_NAME
    

Haz los cambios siguientes:

  • TARGET_PROXY_NAME: el nombre del recurso de proxy https de destino.
  • SSL_CERT_NAME: el nombre del certificado SSL.