Se vuoi utilizzare HTTPS,
- Il contenitore dovrebbe continuare ad ascoltare su
$PORT
Devi scegliere come fornire i certificati TLS:
- Utilizza certificati TLS gestiti, dove i certificati TLS vengono creati automaticamente in base alle esigenze e rinnovati automaticamente. In questa pagina viene descritta la funzionalità, disponibile nelle versioni supportate di Google Kubernetes Engine.
- Utilizza i tuoi certificati per ottenere e rinnovare i certificati. In alcune situazioni, come descritto in Limitazioni, devi utilizzare i tuoi certificati.
Se utilizzi certificati gestiti, devi anche mappare il 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 serving con certificati gestiti sono esposti al traffico sia HTTP che HTTPS. Se vuoi solo il traffico HTTPS, puoi attivare i reindirizzamenti HTTPS per forzare l'utilizzo di tutto il traffico solo su HTTPS.
Risoluzione dei problemi
Se si verificano problemi durante l'utilizzo di certificati TLS gestiti, consulta la pagina sulla 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 disabilitati 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. Il componente aggiuntivo 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 alla settimana per dominio registrato. Puoi richiedere un aumento della quota seguendo la documentazione di Let's Encrypt.
- Quando si esegue un cluster Knative serving su altre piattaforme, come on-prem o AWS, questa funzionalità è disabilitata. Per utilizzare questa funzionalità, devi assicurarti che il cluster sia in grado di accedere a Let's Encrypt e che il servizio in entrata di 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 tuo 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.
Disabilitazione di certificati TLS gestiti e HTTPS per l'intero cluster
Disabilita TLS gestito per un cluster aggiornando il 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 il protocollo 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 HTTP sia in uso per il servizio:
gcloud run domain-mappings describe --domain DOMAIN
Sostituisci DOMAIN con il tuo nome di dominio, ad esempio:
your-domain.com
Controlla il campo
url:
nella restituzione del comando precedente: l'URL deve averehttp
, nonhttps
.
Riattivazione dei certificati TLS gestiti e HTTPS
Per riattivare il protocollo TLS gestito:
Se non l'hai ancora fatto, crea una mappatura di dominio per il tuo servizio e aggiorna il tuo 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 di questa funzionalità.
Verifica riuscita
Verifica che il record DNS sia entrato in vigore eseguendo questo 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:
nella restituzione del comando precedente: l'URL deve averehttps
, nonhttp
.Controlla l'indirizzo IP dal comando riportato sopra, 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 viene esposto al traffico sia HTTP che HTTPS per motivi di compatibilità con le versioni precedenti. Se vuoi forzare l'utilizzo solo di HTTPS di tutto il traffico, puoi attivare i reindirizzamenti HTTPS per un mapping di domini esistente richiamando il comando
kubectl annotate domainmappings DOMAIN domains.cloudrun.com/httpsRedirect=Enabled
dove DOMAIN è il nome della mappatura di dominio.
Argomenti correlati
- Risoluzione dei problemi relativi a TLS gestito per maggiori dettagli sul controllo delle mappature dei domini, delle quote dei certificati, dello stato e dei timeout degli ordini e degli errori di autorizzazione.
- Utilizza i tuoi certificati TLS per le istruzioni sull'utilizzo dei tuoi certificati TLS anziché dei certificati TLS gestiti.