Se vuoi utilizzare HTTPS,
- Il container dovrebbe continuare ad ascoltare su
$PORT
Devi scegliere come fornire i certificati TLS:
- Utilizza i certificati TLS gestiti, in cui i certificati TLS vengono creati automaticamente in base alle necessità e vengono rinnovati automaticamente. Questa pagina descrive questa funzionalità, disponibile nelle versioni di Google Kubernetes Engine supportate.
- Utilizza i tuoi certificati, in cui sei responsabile dell'ottenimento e del rinnovo dei certificati. In alcune situazioni, descritte nella sezione Limitazioni, devi utilizzare i tuoi certificati.
Se utilizzi certificati gestiti, devi anche mappare il tuo dominio personalizzato per utilizzare la funzionalità dei certificati gestiti.
Utilizzo di HTTPS e HTTP
Per impostazione predefinita, se utilizzi certificati gestiti, i cluster o i servizi Knative 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.
Risoluzione dei problemi
Se riscontri problemi durante l'utilizzo dei certificati TLS gestiti, consulta la pagina Risoluzione dei problemi relativi a TLS gestito.
Limitazioni
Le seguenti considerazioni si applicano all'utilizzo della funzionalità dei certificati TLS gestiti:
- I certificati TLS gestiti sono disattivati e non supportati per i cluster privati Knative Serving 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 Cloud Service Mesh. L'addon Istio o altre configurazioni Istio non sono supportati.
- Questa funzionalità utilizza Let's Encrypt, che ha un limite di quota iniziale di 50 certificati TLS a settimana per dominio registrato. Puoi richiedere un aumento della quota seguendo la documentazione di Let's Encrypt.
- Quando esegui un cluster Knative serving su altre piattaforme, ad esempio on-premise o AWS, questa funzionalità è disattivata. Per utilizzare questa funzionalità, devi assicurarti che il cluster possa accedere a Let's Encrypt e che il servizio di ingresso di Cloud Service Mesh sia esposto a internet pubblico.
Prima di iniziare
Le istruzioni riportate in questa pagina presuppongono quanto segue:
- Hai eseguito il deployment del servizio Knative serving nel cluster.
- Possiedi un dominio. Se non hai un dominio, puoi ottenerne uno da Google o da un altro fornitore di domini.
- Hai creato una mappatura di dominio per il tuo servizio e hai aggiornato il record DNS di conseguenza seguendo le istruzioni riportate nella pagina di mappatura dei domini.
- Utilizza Cloud DNS o un server DNS a tua scelta.
Disattivazione di certificati TLS gestiti e HTTPS per un intero cluster
Disattiva TLS gestito per un cluster aggiornando ConfigMap
config-domainmapping
:
kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Disabled"}}'
Disattivazione di TLS gestito e HTTPS per una mappatura di dominio specifica
Se necessario, puoi disattivare TLS gestito 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 per il servizio venga utilizzato HTTP:
gcloud run domain-mappings describe --domain DOMAIN
Sostituisci DOMAIN con il tuo nome di dominio, ad esempio:
your-domain.com
Controlla il campo
url:
nel risultato del comando precedente: l'URL deve averehttp
, nonhttps
.
Riattivazione di certificati TLS gestiti e HTTPS
Per riattivare TLS gestito:
Se non l'hai ancora fatto, crea una mappatura del dominio per il tuo servizio e aggiorna il record DNS di conseguenza seguendo le istruzioni riportate nella pagina di mappatura dei domini.
Attiva i certificati TLS gestiti e HTTPS aggiornando ConfigMap
config-domainmapping
:kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Enabled"}}'
Attendi qualche minuto dopo l'esecuzione del comando, poi assicurati che la funzionalità dei certificati funzioni:
kubectl get kcert
Se il certificato è pronto, dovresti visualizzare un messaggio simile a questo:
NAME READY REASON your-domain.com True
Potrebbero essere necessari da 20 secondi a 2 minuti prima che
Kcert
sia pronto. Se riscontri problemi, consulta le istruzioni per la risoluzione dei problemi relative a questa funzionalità.
Verifica dell'esito positivo
Verifica che il record DNS sia effettivo eseguendo il comando:
gcloud run domain-mappings describe --domain DOMAIN
Sostituisci DOMAIN con il tuo nome di dominio, ad esempio:
your-domain.com
Controlla il campo
url:
nel risultato del comando precedente: l'URL deve averehttps
, nonhttp
.Controlla l'indirizzo IP del comando precedente, elencato in
resourceRecords:rrdata
, e confrontalo con il valore visualizzato quando esegui il comandohost DOMAIN
. Devono essere uguali.
Abilitazione dei reindirizzamenti HTTPS per Knative serving
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 del mapping di dominio.
Argomenti correlati
- Risoluzione dei problemi relativi a TLS gestito per informazioni dettagliate sul controllo delle mappature dei domini, delle quote dei certificati, dello stato degli ordini e dei timeout degli ordini e degli errori di autorizzazione.
- Utilizza i tuoi certificati TLS per istruzioni sull'utilizzo dei tuoi certificati TLS anziché di quelli TLS gestiti.