Se vuoi utilizzare HTTPS,
- Il tuo container dovrebbe continuare ad ascoltare su
$PORT
Devi scegliere come fornisci i certificati TLS:
- Utilizza i certificati TLS gestiti, in cui i certificati TLS vengono creati automaticamente in base alle esigenze e vengono rinnovati automaticamente. Questa pagina descrive questa funzionalità, disponibile nelle versioni di Google Kubernetes Engine supportate.
- Utilizza i tuoi certificati, dove sei responsabile di ottenere e rinnovare i certificati. In alcuni casi, è necessario utilizzare i propri certificati descritti in Limitazioni.
Se utilizzi i certificati gestiti, devi anche mappare il dominio personalizzato per utilizzare la funzionalità dei certificati gestiti.
Utilizzare HTTPS e HTTP
Per impostazione predefinita, se utilizzi certificati gestiti, i cluster o i servizi Cloud Run for Anthos con certificati gestiti sono esposti al traffico HTTP e HTTPS. Se vuoi solo traffico HTTPS, puoi attivare i reindirizzamenti HTTPS per forzare tutto il traffico a utilizzare solo HTTPS.
Risolvere i problemi
Se riscontri problemi quando utilizzi i certificati TLS gestiti, consulta la pagina Risoluzione dei problemi relativi a TLS gestito.
Limitazioni
Le seguenti considerazioni si applicano all'uso della funzionalità dei certificati TLS gestiti:
- I certificati TLS gestiti sono disabilitati e non supportati per i cluster privati Cloud Run for Anthos su Google Cloud.
- Per utilizzare la funzionalità dei certificati gestiti, il servizio deve essere esposto esternamente: non può essere un servizio locale del cluster o un servizio esposto da Virtual Private Cloud.
- La funzionalità dei certificati gestiti funziona solo con Istio, come installato automaticamente quando configuri il tuo cluster per Cloud Run for Anthos: non funziona con il componente aggiuntivo Istio o con altre configurazioni di Istio. Se hai bisogno di utilizzare il componente aggiuntivo Istio, potresti dover utilizzare i tuoi certificati TLS.
- Questa funzionalità utilizza la crittografia Let's, che ha un limite di quota iniziale di 50 certificati TLS a settimana per dominio registrato. Per richiedere un aumento della quota, consulta la documentazione relativa alla crittografia di Let's 39.
- Quando esegui un cluster Cloud Run for Anthos su altre piattaforme, come on-prem o AWS, questa funzionalità è disabilitata. Per utilizzare questa funzionalità, devi assicurarti che il tuo cluster sia in grado di accedere alla crittografia Let's Encrypt e che il servizio Istio in entrata (il servizio
istio-ingress
ingke-system
) sia esposto alla rete Internet pubblica. - Se utilizzi certificati gestiti, quando assegni i domini non puoi utilizzare un nome di mappatura dei domini identico all'URL del servizio a cui esegui la mappatura. Ad esempio, se l'URL del tuo servizio è
test.default.example.com
, non puoi impostare il nome di DomainMapping sutest.default.example.com
.
Prima di iniziare
Le istruzioni riportate in questa pagina presuppongono quanto segue:
- Il tuo cluster Cloud Run for Anthos utilizza una delle versioni del cluster che supportano TLS gestito.
- Hai eseguito il deployment del servizio Cloud Run for Anthos nel cluster.
- Possiedi un dominio. Se non hai un dominio, puoi riceverne uno da Google o da un altro fornitore.
- Hai creato una mappatura del dominio per il tuo servizio e aggiornato il record DNS di conseguenza, seguendo le istruzioni nella pagina di mappatura dei domini.
- Se hai ottenuto il dominio da Google Domains, utilizzalo come server DNS. In caso contrario, utilizza Cloud DNS o un server DNS a tua scelta. L'utilizzo di un dominio di Google Domains è l'opzione più semplice.
Versioni cluster supportate
Per le versioni 1.17.7-gke.15 e successive, i certificati gestiti sono abilitati per impostazione predefinita, per cluster pubblici su Google Cloud.
Per le seguenti versioni del cluster, la funzionalità dei certificati gestiti è disabilitata per impostazione predefinita, ma puoi attivare i certificati gestiti se vuoi utilizzarli:
- 1,16
- 1.15.7-gke.23
- 1.14.10-gke.17
- 1.14.9-gke.23
- 1.14.8-gke.33
Per determinare qual è la tua versione attuale del cluster:
Visita la pagina Google Kubernetes Engine in Google Cloud Console:
Fai clic sul cluster per aprire la relativa pagina dei dettagli.
Individua la versione del cluster accanto all'etichetta Versione master.
Disabilitazione dei certificati TLS gestiti e HTTPS per un intero cluster
Disabilita TLS gestito per un cluster aggiornando l'oggetto ConfigMap
config-domainmapping
:
kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Disabled"}}'
Disabilitazione di TLS e HTTPS gestiti per una mappatura di dominio specifica
Se necessario, puoi disattivare la gestione TLS gestita per una mappatura di dominio specifica:
Aggiungi l'annotazione
domains.cloudrun.com/disableAutoTLS: "true"
`:kubectl annotate domainmappings DOMAIN domains.cloudrun.com/disableAutoTLS=true
Verifica che HTTPS non funzioni:
curl https://DOMAIN
Verifica che HTTP sia utilizzato per il servizio:
gcloud run domain-mappings describe --domain DOMAIN
Sostituisci DOMAIN con il tuo nome di dominio, ad esempio:
example.com
Controlla il campo
url:
nel comando Invio del comando precedente: l'URL deve averehttp
, nonhttps
.
Riattivazione dei certificati TLS gestiti e HTTPS
Per riattivare la crittografia TLS gestita:
Se non lo hai già fatto, crea una mappatura di dominio per il tuo servizio e aggiorna il record DNS di conseguenza, seguendo le istruzioni nella pagina di mappatura dei domini.
Attiva i certificati TLS gestiti e HTTPS aggiornando il ConfigMap
config-domainmapping
:kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Enabled"}}'
Attendi qualche minuto dopo l'esecuzione del comando, quindi assicurati che la funzionalità dei certificati funzioni:
kubectl get kcert
Se il certificato è pronto, dovresti vedere un messaggio simile al seguente:
NAME READY REASON example.com True
Potrebbero essere necessari da 20 secondi a 2 minuti prima che il dispositivo
Kcert
sia pronto. In caso di problemi, consulta le istruzioni per la risoluzione dei problemi relative a questa funzionalità.
Verifica dell'esito positivo
Verifica che il record DNS sia entrato in vigore eseguendo il comando:
gcloud run domain-mappings describe --domain DOMAIN
Sostituisci DOMAIN con il tuo nome di dominio, ad esempio:
example.com
Controlla il campo
url:
nel comando Invio del comando precedente: l'URL deve averehttps
, nonhttp
.Controlla l'indirizzo IP del comando riportato sopra, elencato sotto
resourceRecords:rrdata
, e confrontalo con il valore che vedi quando esegui il comandohost DOMAIN
. Dovrebbero essere uguali.
Abilitazione dei reindirizzamenti HTTPS per Cloud Run for Anthos
Se utilizzi la funzionalità dei certificati TLS gestiti, per impostazione predefinita il cluster è esposto al traffico HTTP e HTTPS per motivi di compatibilità con le versioni precedenti. Se vuoi forzare tutto il traffico a utilizzare solo HTTPS, puoi attivare i reindirizzamenti HTTPS per una mappatura di dominio esistente richiamando il comando
kubectl annotate domainmappings DOMAIN domains.cloudrun.com/httpsRedirect=Enabled
dove DOMAIN è il nome della mappatura dei domini.
Argomenti correlati
- Risoluzione dei problemi relativi a TLS gestito per i dettagli di controllo delle mappature dei domini, delle quote dei certificati, dello stato degli ordini, dei timeout degli ordini e degli errori di autorizzazione.
- Crea i tuoi certificati TLS per le istruzioni sull'utilizzo dei tuoi certificati TLS anziché dei certificati TLS gestiti.