Se vuoi utilizzare HTTPS,
- Il contenitore 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 esigenze e rinnovati automaticamente. Questa pagina descrive questa funzionalità, disponibile nelle versioni di Google Kubernetes Engine supportate.
- Utilizza i tuoi certificati, in cui si occuperanno dell'ottenimento e del rinnovo dei certificati. In alcuni casi, описанных в разделе Limitazioni, devi utilizzare i tuoi certificati.
Se utilizzi certificati gestiti, devi anche mappa il tuo dominio personalizzato per utilizzare il 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 il traffico HTTPS, puoi attivare i reindirizzamenti HTTPS per per forzare tutto il traffico a usare solo HTTPS.
Risoluzione dei problemi
Se si verificano problemi durante l'utilizzo dei certificati TLS gestiti, consulta le pagina per la 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 Knative serving su Google Cloud.
- Per utilizzare la funzionalità dei certificati gestiti, il servizio deve essere esposte esternamente: non possono essere cluster-locale o un servizio esposto da Virtual Private Cloud.
- La funzionalità dei certificati gestiti funziona solo con Cloud Service Mesh. Il servizio Istio il componente aggiuntivo 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.
- Durante l'esecuzione di un cluster Knative serving su altre piattaforme, ad esempio on-prem o AWS, questa funzionalità è disabilitata. 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 tuo servizio Knative serving in 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 aggiornato di conseguenza il record DNS seguendo le istruzioni riportate nella pagina di mappatura dei domini.
- Utilizza Cloud DNS, o un server DNS di tua scelta.
Disattivazione di certificati TLS gestiti e HTTPS per un 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 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 valore restituito dal comando riportato sopra: l'URL deve averehttp
, nonhttps
.
Riabilitazione di certificati TLS gestiti e HTTPS
Per riattivare il protocollo 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 il completamento 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 si verificano problemi, consulta le istruzioni per la risoluzione dei problemi relativi a questo 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:
nella restituzione del comando precedente: l'URL deve hannohttps
, 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 Se vuoi forzare tutto il traffico a usare 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 della mappatura di dominio.
Argomenti correlati
- Risoluzione dei problemi relativi a TLS gestito per dettagli su come verificare le mappature dei domini, le quote dei certificati, lo stato degli ordini timeout degli ordini e errori di autorizzazione.
- Utilizza i tuoi certificati TLS per istruzioni sull'utilizzo dei tuoi certificati TLS anziché del sistema TLS gestito certificati.