Risoluzione dei problemi relativi ai certificati SSL

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

Risolvere i problemi relativi ai certificati gestiti da Google

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

  • Stato gestito
  • Stato dominio

Stato gestito

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 gestito Spiegazione
PROVISIONING

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

Il provisioning di un certificato gestito da Google potrebbe richiedere fino a 60 minuti dal momento in cui le modifiche alla configurazione del DNS e del bilanciatore del carico sono state propagate su internet. Se hai aggiornato la configurazione DNS di recente, la propagazione completa delle modifiche potrebbe richiedere molto tempo. A volte la propagazione richiede fino a 72 ore in tutto il mondo, anche se in genere richiede alcune ore. Per maggiori informazioni sulla propagazione del DNS, consulta Propagazione delle modifiche.

Se il certificato rimane nello stato PROVISIONING, assicurati che sia associato il certificato corretto al proxy di destinazione. 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. Potrebbero essere necessari altri 30 minuti prima che sia disponibile per l'utilizzo da parte di un bilanciatore del carico.
PROVISIONING_FAILED Potresti visualizzare brevemente PROVISIONING_FAILED anche se il tuo certificato è in realtà ACTIVE. Ricontrolla lo stato.

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

Google Cloud riprova il provisioning finché l'operazione non va a buon fine o lo stato passa a 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 riprova il provisioning.

Crea un certificato SSL sostitutivo gestito da Google 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, potrai eliminare il certificato che non ha superato il provisioning permanente.
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 o più domini o sottodomini in un certificato gestito non puntano all'indirizzo IP del bilanciatore del carico utilizzando un record A/AAAA, il processo di rinnovo non va a buon fine. Il certificato esistente continua a essere valido, ma scadrà a breve. Controlla la configurazione.

Se lo stato rimane RENEWAL_FAILED, esegui il provisioning di un nuovo certificato, passa a quello nuovo ed elimina quello precedente.

Per maggiori informazioni sul rinnovo del certificato, consulta la pagina relativa al 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)"

I valori relativi allo stato del dominio sono descritti in questa tabella.

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

Il provisioning del certificato non è stato completato per il dominio. Il problema potrebbe essere uno dei 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 puntino all'indirizzo IP del bilanciatore del carico.

    Il DNS non deve risolversi in indirizzi IP diversi da quelli del bilanciatore del carico. Ad esempio, se un record A si risolve nel bilanciatore del carico corretto, ma AAAA si risolve in qualcos'altro, lo stato del dominio è FAILED_NOT_VISIBLE.

  • La propagazione completa dei record DNS A e AAAA appena aggiornati può richiedere molto tempo. A volte la propagazione su internet richiede fino a 72 ore in tutto il mondo, anche se in genere richiede alcune ore. Lo stato del dominio continua 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 il problema, aggiorna la configurazione del bilanciatore del carico.
  • Le porte di frontend per la regola di forwarding globale non includono la porta 443 per un bilanciatore del carico di rete proxy esterno con un proxy SSL. Il problema può essere risolto aggiungendo una nuova regola di forwarding con la porta 443.
  • Una mappa di certificati di Gestore certificati è collegata al proxy di destinazione. La mappa di certificati collegata ha la precedenza e i certificati collegati direttamente vengono ignorati. Per risolvere il problema, scollega la mappa di certificati dal proxy.
  • 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 Il provisioning del certificato non è riuscito a causa di un problema di configurazione con il record CAA del tuo dominio. Assicurati di aver seguito la procedura corretta.
FAILED_CAA_FORBIDDEN Il provisioning del certificato non è riuscito perché il record CAA del tuo dominio non specifica una CA che Google Cloud deve utilizzare. Assicurati di aver seguito la procedura corretta.
FAILED_RATE_LIMITED Il provisioning del certificato non è riuscito perché un'autorità di certificazione ha richieste di firma dei certificati con limitazioni di frequenza. Puoi eseguire il provisioning di un nuovo certificato, passare al nuovo certificato ed eliminare quello precedente oppure puoi contattare l'assistenza Google Cloud.

Rinnovo del certificato gestito

Se uno dei domini o sottodomini in un certificato gestito non punta all'indirizzo IP del bilanciatore del carico, il processo di rinnovo non va a buon fine. Per evitare che il rinnovo non vada a buon fine, assicurati che tutti i domini e i sottodomini indirizzino all'indirizzo IP del bilanciatore del carico.

Risoluzione dei problemi relativi ai certificati SSL autogestiti

Questa guida descrive come risolvere i problemi di configurazione dei 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 o un attributo nome comune (CN) o nome alternativo del soggetto (SAN). Per ulteriori informazioni, vedi Creare una richiesta di firma del certificato Google.

Quando entrambi gli attributi non sono presenti, Google Cloud visualizza 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

Google 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, 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 tua 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 rimuovere la passphrase 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: 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 (leaf), è possibile che la tua CA non segua le best practice.

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

  • Alcuni client SSL controllano solo la scadenza del certificato foglia e ignorano i certificati intermedi scaduti.
  • Alcuni client SSL considerano non validi una catena con certificati intermedi scaduti e visualizzano 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 incrociata per i certificati intermedi. Verifica con la tua CA.

L'esponente pubblico RSA è troppo grande

Il seguente messaggio di errore viene visualizzato quando l'esponente pubblico RSA supera 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.

Rimuovi il certificato SSL da target-proxy

I passaggi seguenti mostrano come rimuovere un singolo certificato SSL collegato al proxy https di destinazione:

  1. Esporta il target-https-proxy 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 di destinazione.
  • SSL_CERT_NAME: il nome del certificato SSL.