Questo documento descrive come diagnosticare e risolvere i problemi comuni relativi ai certificati SSL gestiti da Google e autogestiti. I certificati SSL validi proteggono i dati in transito e contribuiscono a garantire la disponibilità del servizio per i deployment di bilanciamento del carico.
Risolvi i 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 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:
- Contatta la CA per assistenza.
- Crea una nuova chiave privata e un nuovo certificato.
Nome comune o nome alternativo del soggetto mancante
Google Cloud richiede che il certificato abbia o un attributo common name (CN) o un attributo nome alternativo del soggetto (SAN). Per ulteriori informazioni, consulta Crea una CSR.
Quando entrambi gli attributi sono assenti, 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 per le chiavi private.
Puoi convalidare la chiave privata utilizzando il seguente comando OpenSSL, sostituendo PRIVATE_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 KeyExpecting: ANY PRIVATE KEYRSA key error: n does not equal p qRSA key error: d e not congruent to 1RSA key error: dmp1 not congruent to dRSA key error: dmq1 not congruent to dRSA 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 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 passphraseREPLACEMENT_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 server (foglia), questo potrebbe indicare che la CA non segue le best practice.
Quando un certificato intermedio scade, il certificato foglia utilizzato in Google Cloud potrebbe non essere più 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 non valida una catena con certificati intermedi scaduti e visualizzano un avviso.
Per risolvere il problema:
- Attendi che la CA passi a un nuovo certificato intermedio.
- Richiedi un nuovo certificato.
- Ricarica il nuovo certificato con le nuove chiavi.
La CA potrebbe anche consentire la firma incrociata per i certificati intermedi. Rivolgiti alla tua 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 in 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 di destinazione
I passaggi seguenti mostrano come rimuovere un singolo certificato SSL collegato al proxy HTTPS di destinazione:
Esporta il proxy target-https-proxy in un file temporaneo.
gcloud compute target-https-proxies export TARGET_PROXY_NAME > /tmp/proxy
Modifica il file
/tmp/proxye rimuovi le seguenti righe:sslCertificates: - https://www.googleapis.com/compute/v1/projects/...Importa il file
/tmp/proxy.gcloud compute target-https-proxies import TARGET_PROXY_NAME \ --source=/tmp/proxy
(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.