Risoluzione dei problemi dei certificati SSL

Le procedure per la risoluzione dei problemi variano a seconda che tu stia utilizzando certificati SSL gestiti da Google o certificati SSL autogestiti.

Risoluzione dei problemi relativi ai certificati gestiti da Google

Per i certificati gestiti da Google, sono disponibili due tipi di stato:

  • Stato gestione
  • Stato dominio

Stato gestione

Per controllare lo stato del certificato, esegui questo comando:

gcloud compute ssl-certificates describe CERTIFICATE_NAME \
    --global \
    --format="get(name,managed.status)"

I valori per lo stato gestito sono i seguenti:

Stato gestione Spiegazione
PROVISIONING

Il certificato gestito da Google è stato creato e Google Cloud collabora con l'autorità di certificazione per firmarlo.

Il provisioning di un certificato gestito da Google può richiedere fino a 60 minuti dal momento della propagazione delle modifiche alla configurazione del DNS e del bilanciatore del carico su Internet. Se hai aggiornato la tua configurazione DNS di recente, potrebbe essere necessario un po' di tempo prima che le modifiche si propaghino del tutto. A volte la propagazione richiede fino a 72 ore in tutto il mondo, ma in genere è necessaria qualche ora. Per ulteriori informazioni sulla propagazione del DNS, consulta la sezione Propagazione delle modifiche.

Se il certificato rimane nello stato PROVISIONING, assicurati che al proxy di destinazione sia associato il certificato corretto. Puoi verificarlo eseguendo il comando gcloud compute target-https-proxies describe o gcloud compute target-ssl-proxies describe.

ACTIVE Il certificato SSL gestito da Google è ottenuto dall'autorità di certificazione. Potresti dover attendere altri 30 minuti prima che sia disponibile per l'utilizzo da parte di un bilanciatore del carico.
PROVISIONING_FAILED Potresti visualizzare PROVISIONING_FAILED per un breve periodo anche quando il certificato è effettivamente ACTIVE. Controlla nuovamente lo stato.

Se lo stato rimane impostato su PROVISIONING_FAILED, il certificato gestito da Google è stato creato, ma l'autorità di certificazione non può firmarlo. Assicurati di aver completato tutti i passaggi in Utilizzo dei certificati SSL gestiti da Google.

Google Cloud riprova il provisioning fino a quando lo stato non viene modificato in PROVISIONING_FAILED_PERMANENTLY.
PROVISIONING_FAILED_PERMANENTLY Il certificato gestito da Google è stato creato, ma l'autorità di certificazione non può firmarlo a causa di un problema di configurazione del DNS o del bilanciatore del carico. In questo stato, Google Cloud non tenta di eseguire il provisioning.

Crea un certificato SSL gestito da Google sostitutivo e assicurati che la sostituzione sia associata al proxy di destinazione del bilanciatore del carico. Verifica o completa tutti i passaggi descritti in Utilizzo dei certificati SSL gestiti da Google. Successivamente, puoi eliminare il certificato che ha impedito definitivamente il provisioning.
RENEWAL_FAILED

Il rinnovo del certificato gestito da Google non è riuscito a causa di un problema con il bilanciatore del carico o la configurazione DNS. Se uno dei domini o sottodomini in un certificato gestito non rimanda all'indirizzo IP del bilanciatore del carico, utilizzando un record A/AAAA, il processo di rinnovo non riesce. Il certificato esistente continua a essere pubblicato, ma scade a breve. Controlla la configurazione.

Se lo stato rimane RENEWAL_FAILED, esegui il provisioning di un nuovo certificato, passa all'uso del nuovo certificato ed elimina quello precedente.

Per ulteriori informazioni sul rinnovo dei certificati, consulta Rinnovo del certificato SSL gestito da Google.

Stato dominio

Per controllare lo stato del dominio, esegui questo comando:

gcloud compute ssl-certificates describe CERTIFICATE_NAME \
    --global \
    --format="get(managed.domainStatus)"

In questa tabella sono descritti i valori relativi allo stato del dominio.

Stato dominio Spiegazione
PROVISIONING Il certificato gestito da Google viene creato per il dominio. Google Cloud collabora con l'autorità di certificazione per firmare il certificato.
ACTIVE Il dominio è stato convalidato per il provisioning del certificato. Se il certificato SSL è relativo a più domini, è possibile eseguire il provisioning del certificato solo quando tutti i domini hanno uno stato ACTIVE e anche lo stato gestito del certificato è ACTIVE.
FAILED_NOT_VISIBLE

Il provisioning dei certificati non è stato completato per il dominio. Il problema potrebbe essere una delle seguenti:

  • Il record DNS del dominio non si risolve nell'indirizzo IP del bilanciatore del carico Google Cloud. Per risolvere il problema, aggiorna i record DNS A e AAAA in modo che rimandino all'indirizzo IP del bilanciatore del carico.

    Il DNS non deve risolvere un indirizzo IP diverso da quello del bilanciatore del carico. Ad esempio, se un record A risolve il bilanciatore del carico corretto, ma l'AAAA restituisce un altro valore, lo stato del dominio è FAILED_NOT_VISIBLE.

  • La propagazione completa dei nuovi record DNS A e AAAA può richiedere molto tempo. A volte la propagazione su Internet richiede fino a 72 ore in tutto il mondo, sebbene in genere siano necessarie alcune ore. Lo stato del dominio continuerà a essere FAILED_NOT_VISIBLE fino al completamento della propagazione.
  • Il certificato SSL non è collegato al proxy di destinazione del bilanciatore del carico. Per risolvere questo problema, aggiorna la configurazione del bilanciatore del carico.
  • Le porte frontend per la regola di forwarding globale non includono la porta 443 per un bilanciatore del carico proxy SSL esterno. Per risolvere questo problema, aggiungi una nuova regola di forwarding con la porta 443.
  • Se lo stato gestito è PROVISIONING, Google Cloud continua a riprovare a eseguire il provisioning, anche se lo stato del dominio è FAILED_NOT_VISIBLE.
FAILED_CAA_CHECKING Provisioning dei certificati non riuscito a causa di un problema di configurazione con il record CAA del dominio. Assicurati di aver seguito la procedura corretta.
FAILED_CAA_FORBIDDEN Il provisioning dei certificati non è riuscito perché il record CAA del dominio non specifica una CA che Google Cloud deve utilizzare. Assicurati di aver seguito la procedura corretta.
FAILED_RATE_LIMITED Provisioning dei certificati non riuscito perché un'autorità di certificazione ha richieste di firma dei certificati con frequenza limitata. Puoi eseguire il provisioning di un nuovo certificato, passare all'uso del nuovo certificato ed eliminare il certificato precedente oppure puoi contattare l'assistenza Google Cloud.

Rinnovo certificato gestito

Se uno dei domini o dei sottodomini di un certificato gestito non rimanda all'indirizzo IP del bilanciatore del carico, il processo di rinnovo non andrà a buon fine. Per evitare il rinnovo non riuscito, assicurati che tutti i domini e i sottodomini rimandino all'indirizzo IP del bilanciatore del carico.

Risoluzione dei problemi relativi ai certificati SSL autogestiti

Impossibile analizzare il certificato

Google Cloud richiede certificati in formato PEM. Se il certificato è in formato PEM, verifica quanto segue:

Puoi convalidare il tuo 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

Google Cloud richiede che il certificato abbia un nome comune (CN) o un nome alternativo del soggetto (SAN). Consulta Creare una CSR per ulteriori informazioni.

In assenza di entrambi gli attributi, Google Cloud mostra un messaggio di errore simile al 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

Google Cloud richiede chiavi private in formato PEM che soddisfano i criteri chiave privati.

Puoi convalidare la tua chiave privata utilizzando il seguente comando OpenSSL, sostituendo PRIVATE_KEY_FILE con il percorso della tua 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 il nuovo certificato.

Chiavi private con passphrase

Se OpenSSL richiede una passphrase, dovrai rimuoverla dalla chiave privata prima di poterla utilizzare con Google 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: un percorso del file in cui vuoi salvare una copia della tua chiave privata in testo non crittografato

Certificati intermedi in scadenza

Se un certificato intermedio scade prima del certificato del server (foglia), è possibile che la CA non segua le best practice.

Quando scade un certificato intermedio, il certificato foglia utilizzato in Google Cloud potrebbe non essere valido. Questo dipende dal client SSL, come segue:

  • Alcuni client SSL esaminano solo la data di scadenza del certificato foglia e ignorano i certificati intermedi scaduti.
  • Alcuni client SSL considerano una catena con tutti i certificati intermedi scaduti non validi e visualizzano un avviso.

Per risolvere il problema:

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

La tua CA potrebbe anche consentire la firma incrociata per certificati intermedi. Contatta l'autorità di certificazione per confermare.

L'esponente pubblico RSA è troppo grande

Il seguente messaggio di errore viene visualizzato quando l'esponente pubblico RSA è maggiore di 65537. Assicurati di utilizzare 65537, come specificato in RFC 4871.

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