Risoluzione dei problemi relativi ai certificati SSL

Le procedure di risoluzione dei problemi dipendono dal tipo di certificati SSL utilizzati.

Risolvere i problemi relativi ai certificati SSL autogestiti

Questa guida descrive come risolvere i problemi di configurazione per i certificati SSL autogestiti.

Impossibile analizzare il certificato

Trusted Cloud richiede certificati in formato PEM. Se il certificato è in formato PEM, controlla quanto segue:

Puoi convalidare il certificato utilizzando il seguente comando OpenSSL, sostituendo CERTIFICATE_FILE con il percorso del file del certificato:

openssl x509 -in CERTIFICATE_FILE -text -noout

Se OpenSSL non è in grado di analizzare il certificato:

Nome comune o nome alternativo del soggetto mancante

Trusted Cloud richiede che il certificato abbia o un attributo nome comune (CN) o nome alternativo dell'oggetto (SAN). Per ulteriori informazioni, consulta Creare un CSR.

Quando entrambi gli attributi sono assenti, Trusted Cloud viene visualizzato un messaggio di errore come il seguente quando provi a creare un certificato autogestito:

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

Impossibile analizzare la chiave privata

Trusted Cloud richiede chiavi private in formato PEM che soddisfino i criteri delle chiavi private.

Puoi convalidare la tua chiave privata utilizzando il seguente comando OpenSSL, sostituendoPRIVATE_KEY_FILE con il percorso della chiave privata:

    openssl rsa -in PRIVATE_KEY_FILE -check

Le seguenti risposte indicano un problema con la chiave privata:

  • 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

Per risolvere il problema, devi creare una nuova chiave privata e un nuovo certificato.

Chiavi private con passphrase

Se OpenSSL richiede una passphrase, dovrai rimuoverla dalla chiave privata prima di poterla utilizzare con Trusted Cloud. Puoi utilizzare il seguente comando OpenSSL:

openssl rsa -in PRIVATE_KEY_FILE \
    -out REPLACEMENT_PRIVATE_KEY_FILE

Sostituisci i segnaposto con valori validi:

  • PRIVATE_KEY_FILE: il percorso della chiave privata protetta con una passphrase
  • REPLACEMENT_PRIVATE_KEY_FILE: il percorso in cui vuoi salvare una copia della chiave privata in testo normale

Certificati intermedi in scadenza

Se un certificato intermedio scade prima del certificato del server (a livello inferiore), potrebbe indicare che la tua CA non segue le best practice.

Quando un certificato intermedio scade, il certificato finale utilizzato in Trusted Cloud potrebbe diventare non valido. Questo dipende dal client SSL, come segue:

  • Alcuni client SSL esaminano solo la data di scadenza del certificato finale e ignorano i certificati intermedi scaduti.
  • Alcuni client SSL trattano una catena con certificati intermedi scaduti come non valida e mostrano un avviso.

Per risolvere il problema:

  1. Attendi che la CA passi a un nuovo certificato intermedio.
  2. Richiedi un nuovo certificato.
  3. Ricarica il nuovo certificato con le nuove chiavi.

La tua CA potrebbe anche consentire la firma tra certificati per i certificati intermedi. Rivolgiti al tuo CA per conferma.

L'esponente pubblico RSA è troppo grande

Quando l'esponente pubblico RSA è maggiore di 65537, viene visualizzato il seguente messaggio di errore. Assicurati di utilizzare 65537, come specificato nella RFC 4871.

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

Rimuovi il certificato SSL dal proxy target

I passaggi riportati di seguito mostrano come rimuovere un singolo certificato SSL associato al proxy https di destinazione:

  1. Esporta il proxy https target in un file temporaneo.

    gcloud compute target-https-proxies export TARGET_PROXY_NAME > /tmp/proxy
    
  2. Modifica il file /tmp/proxy e rimuovi le seguenti righe:

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

    gcloud compute target-https-proxies import TARGET_PROXY_NAME \
       --source=/tmp/proxy
    
  4. (Facoltativo) Elimina il certificato SSL.

    gcloud compute ssl-certificates delete SSL_CERT_NAME
    

Sostituisci quanto segue:

  • TARGET_PROXY_NAME: il nome della risorsa proxy https target.
  • SSL_CERT_NAME: il nome del certificato SSL.