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://DOMAINVerifica 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.comControlla 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
Kcertsia 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.comControlla 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.