Utilizzo di certificati TLS gestiti e HTTPS

Questa pagina mostra come disattivare e riattivare i certificati TLS gestiti che fornisce e rinnova automaticamente i certificati TLS per il supporto Connessioni HTTPS su Knative serving.

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 automaticamente vengono creati in base alle esigenze e vengono rinnovati automaticamente. In questa pagina viene descritto disponibile in versioni di Google Kubernetes Engine supportate.
    • Utilizza i tuoi certificati, in cui si occuperanno 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 mappa il tuo dominio personalizzato per utilizzare il dei certificati gestiti.

Utilizzo di HTTPS e HTTP

Per impostazione predefinita, se utilizzi certificati gestiti, cluster o Knative serving i servizi con certificati gestiti sono esposti al traffico sia HTTP che 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'uso dei certificati TLS gestiti funzionalità:

  • I certificati TLS gestiti sono disabilitati e non supportati per Knative serving di cluster privati 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à usa Let's Encrypt, che ha un limite di quota iniziale di 50 certificati TLS a settimana per dominio registrato. Tu può richiedere un aumento della quota seguendo le Vediamo la documentazione di Crittografia.
  • Durante l'esecuzione di un cluster Knative serving su altre piattaforme, ad esempio on-prem o AWS, questa funzionalità è disabilitata. Per utilizzare questa funzione, devi apportare assicurati che il cluster sia in grado di accedere Crittografia e il tuo Cloud Service Mesh in entrata sia esposto alla rete internet pubblica.

Prima di iniziare

Le istruzioni riportate in questa pagina presuppongono quanto segue:

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:

  1. Aggiungi l'annotazione domains.cloudrun.com/disableAutoTLS: "true"`:

    kubectl annotate domainmappings DOMAIN domains.cloudrun.com/disableAutoTLS=true
  2. Verifica che HTTPS non funzioni:

    curl https://DOMAIN

  3. 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 hanno http, non https.

Riattivazione dei certificati TLS gestiti e HTTPS

Per riattivare il protocollo TLS gestito:

  1. Se non l'hai ancora fatto, crea una mappatura di dominio per il tuo servizio. aggiorna il tuo record DNS di conseguenza seguendo le istruzioni riportate pagina di mappatura dei domini.

  2. Attiva i certificati TLS gestiti e HTTPS aggiornando il ConfigMap config-domainmapping:

    kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Enabled"}}'
  3. Attendi alcuni minuti dopo l'esito positivo del comando, quindi assicurati che la funzionalità dei certificati funziona:

    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 riuscita

  1. 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

  2. Controlla il campo url: nella restituzione del comando precedente: l'URL deve hanno https, non http.

  3. Controlla l'indirizzo IP dal comando precedente, elencato sotto resourceRecords:rrdata e confrontarlo con il valore che vedi quando esegui l'operazione il comando host DOMAIN. Devono essere uguali.

Abilitazione dei reindirizzamenti HTTPS per Knative serving

Se utilizzi la funzionalità dei certificati TLS gestiti, per impostazione predefinita il cluster è esposte al traffico sia HTTP che 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.