Se vuoi usare HTTPS,
- Il contenitore dovrebbe continuare ad ascoltare il giorno
$PORT
Devi scegliere come fornire i certificati TLS:
- Utilizza i certificati TLS gestiti, per i quali vengono creati automaticamente secondo necessità e rinnovati automaticamente. Questa pagina descrive questa funzionalità, disponibile nelle versioni di Google Kubernetes Engine supportate.
- Utilizza i tuoi certificati, per il quale sei responsabile di ottenere e rinnovare i certificati. In alcune situazioni, descritte nella sezione Limitazioni, devi utilizzare i tuoi certificati.
Se utilizzi certificati gestiti, devi anche mappare il dominio personalizzato per poter utilizzare la funzionalità dei certificati gestiti.
Utilizzo di HTTPS e HTTP
Per impostazione predefinita, se utilizzi certificati gestiti, cluster o servizi di gestione di Knative con certificati gestiti sono esposti sia al traffico HTTP che a quello HTTPS. Se vuoi solo il traffico HTTPS, puoi attivare i reindirizzamenti HTTPS per fare in modo che tutto il traffico utilizzi solo HTTPS.
Risoluzione dei problemi
Se riscontri problemi durante l'utilizzo dei certificati TLS gestiti, consulta la pagina Risoluzione dei problemi di TLS gestito.
Limitazioni
Le seguenti considerazioni si applicano all'utilizzo della funzionalità dei certificati TLS gestiti:
- I certificati TLS gestito sono disabilitati e non sono supportati per i cluster privati di gestione di Knative su Google Cloud.
- Per utilizzare la funzionalità dei certificati gestiti, il tuo servizio deve essere esposto all'esterno: non può essere un servizio locale del cluster o un servizio esposto da Virtual Private Cloud.
- La funzionalità dei certificati gestiti funziona solo con Anthos Service Mesh. Il componente aggiuntivo 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.
- Durante l'esecuzione di un cluster di gestione Knative 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 tuo servizio in entrata ad Anthos Service Mesh sia esposto alla rete internet pubblica.
Prima di iniziare
Le istruzioni in questa pagina presuppongono quanto segue:
- Hai eseguito il deployment del servizio di gestione Knative nel cluster.
- Possiedi un dominio. Se non hai un dominio, puoi ottenerne uno da Google o da un altro fornitore di dominio.
- 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 dei certificati TLS gestiti e di HTTPS per un intero cluster
Disabilita il protocollo 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 utilizzato 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 risposta del comando precedente: l'URL deve averehttp
, nonhttps
.
Riattivazione di 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 alcuni minuti dopo l'esito positivo del comando, quindi assicurati che la funzionalità dei certificati funzioni:
kubectl get kcert
Se il certificato è pronto, dovresti vedere 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. 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 stato applicato 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:
nella risposta 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
. Devono essere uguali.
Abilitazione dei reindirizzamenti HTTPS per la gestione con Knative
Se utilizzi la funzionalità dei certificati TLS gestiti, per impostazione predefinita il cluster è esposto sia al traffico HTTP che a quello HTTPS per motivi di compatibilità con le versioni precedenti. Se vuoi forzare l'utilizzo solo di HTTPS di tutto il traffico, puoi abilitare i reindirizzamenti HTTPS per un mapping 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 del protocollo TLS gestito per maggiori dettagli sul controllo delle mappature di dominio, delle quote dei certificati, dello stato degli ordini e dei timeout degli ordini, nonché sugli errori di autorizzazione.
- Utilizza i tuoi certificati TLS per istruzioni sull'utilizzo dei tuoi certificati TLS anziché dei certificati TLS gestiti.