Se vuoi utilizzare HTTPS,
- Il contenitore dovrebbe continuare a riprodurre contenuti 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 esigenze e rinnovati automaticamente. Questa pagina descrive questa funzionalità, disponibile nelle versioni di Google Kubernetes Engine supportate.
- Utilizza i tuoi certificati, in cui è tua responsabilità ottenere e rinnovare i certificati. In alcuni casi, описанных в разделе Limitazioni, devi utilizzare i tuoi certificati.
Se utilizzi i certificati gestiti, devi anche mappare il tuo dominio personalizzato per poter utilizzare la funzionalità dei certificati gestiti.
Utilizzo di HTTPS e HTTP
Per impostazione predefinita, se utilizzi certificati gestiti, i cluster o i servizi di pubblicazione Knative con certificati gestiti sono esposti sia al traffico HTTP che a quello 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 sono supportati per i cluster privati di Knative per il servizio 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. Il plug-in Istio o altre configurazioni di 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, come on-prem o AWS, questa funzionalità è disattivata. Per utilizzare questa funzionalità, devi assicurarti che il tuo cluster possa accedere a Let's Encrypt e che il servizio di ingresso Cloud Service Mesh sia esposto alla rete internet pubblica.
Prima di iniziare
Le istruzioni riportate in questa pagina presuppongono quanto segue:
- Hai eseguito il deployment del servizio Knative serving nel cluster.
- Sei il proprietario di 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 aggiornato di conseguenza il record DNS 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 il ConfigMapconfig-domainmapping
:
kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Disabled"}}'
Disattivazione di TLS e HTTPS gestiti per una mappatura di dominio specifica
Se necessario, puoi disattivare TLS gestito per una mappatura del 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 ritorno del comando riportato sopra: l'URL deve averehttp
, nonhttps
.
Riabilitazione di certificati TLS gestiti e HTTPS
Per riattivare TLS gestito:
Se non l'hai già 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 il ConfigMap
config-domainmapping
:kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Enabled"}}'
Attendi qualche minuto dopo l'esito positivo del comando, quindi assicurati che la funzionalità dei certificati funzioni:
kubectl get kcert
Se il certificato è pronto, dovresti visualizzare un messaggio simile al seguente:
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 entrato in vigore 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 ritorno del comando riportato sopra: 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.
Attivazione dei reindirizzamenti HTTPS per Knative serving
Se utilizzi la funzionalità dei certificati TLS gestiti, per impostazione predefinita il cluster è esposto sia al traffico HTTP sia a quello 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 del 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 dettagli sulla verifica delle mappature dei domini, delle quote dei certificati, dello stato degli ordini e dei timeout degli ordini e degli errori di autorizzazione.
- Consulta la sezione Porta i tuoi certificati TLS per istruzioni su come utilizzare i tuoi certificati TLS anziché quelli gestiti.