Configurazione di TLS e mTLS sul gateway in entrata

Questo argomento spiega come attivare TLS e mTLS unidirezionali su ingressgateway .

Configurazione di TLS unidirezionale

Utilizza TLS unidirezionale per proteggere gli endpoint proxy API sul gateway di ingresso. Per attivare TLS unidirezionale, configura l'ingress con coppie di chiavi/certificati TLS o con un segreto Kubernetes, come spiegato nelle seguenti opzioni.

Opzione 1: coppia chiave/certificato

Fornisci i file del certificato e della chiave SSL nella proprietà virtualhosts del file delle sostituzioni:

virtualhosts:
  - name: $ENVIRONMENT_GROUP_NAME
    sslCertPath: "$CERT_FILE"
    sslKeyPath: "$KEY_FILE"

dove $ENVIRONMENT_GROUP_NAME è il nome di un gruppo di ambienti con gli alias host corrispondenti e $CERT_FILE e $KEY_FILE sono i file della chiave e del certificato TLS. Vedi Creare certificati TLS.

Opzione 2: secret Kubernetes

Crea un secret Kubernetes e aggiungilo al file delle sostituzioni.

  1. Crea il secret in uno dei due seguenti spazi dei nomi:
    • Spazio dei nomi apigee se utilizzi il gateway di ingresso Apigee.
    • istio-system se utilizzi Anthos Service Mesh installato dal cliente.

    Gateway di ingresso Apigee

    kubectl create -n apigee secret generic $SECRET_NAME  \
    --from-file=key=$KEY_FILE \
    --from-file=cert=$CERT_FILE

    Anthos Service Mesh

    kubectl create -n istio-system secret generic $SECRET_NAME  \
    --from-file=key=$KEY_FILE \
    --from-file=cert=$CERT_FILE
  2. Configura la proprietà virtualhosts nel file delle sostituzioni:
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: SIMPLE  # Note: SIMPLE is the default, so it is optional.
        sslSecret: $SECRET_NAME

Configurazione di mTLS

Anziché TLS unidirezionale, puoi configurare mTLS sul gateway in entrata. Esistono due opzioni per la configurazione di mTLS, come spiegato di seguito.

Opzione 1: coppia chiave/certificato e file CA

Fornisci un certificato dell'autorità di certificazione (CA) con i file della chiave e del certificato SSL nella proprietà virtualhosts del file delle sostituzioni:

virtualhosts:
  - name: $ENVIRONMENT_GROUP_NAME
    tlsMode: MUTUAL
    caCertPath: "$CA_FILE"
    sslCertPath: "$CERT_FILE"
    sslKeyPath: "$KEY_FILE"

dove $ENVIRONMENT_GROUP_NAME è il nome di un gruppo di ambienti con gli alias host corrispondenti, $CA_FILE è un certificato autorizzato e $CERT_FILE e $KEY_FILE sono i file della chiave e del certificato TLS. Vedi Creare certificati TLS.

Opzione 2: Kubernetes Secrets

Crea due secret di Kubernetes. Il primo segreto è per la coppia chiave/certificato SSL e il secondo per la CA. Aggiungili al file delle sostituzioni.

  1. Crea due secret Kubernetes in uno dei due seguenti spazi dei nomi:
    • Spazio dei nomi apigee se utilizzi il gateway di ingresso Apigee.
    • istio-system se utilizzi Anthos Service Mesh installato dal cliente.

    Gateway di ingresso Apigee

    kubectl create -n apigee secret generic $SECRET_NAME  \
    --from-file=key=$KEY_FILE \
    --from-file=cert=$CERT_FILE

    Anthos Service Mesh

    kubectl create -n istio-system secret generic $SECRET_NAME  \
    --from-file=key=$KEY_FILE \
    --from-file=cert=$CERT_FILE
  2. Crea un secret per la CA:

    Gateway di ingresso Apigee

    kubectl create -n apigee secret generic $SECRET_NAME-cacert  \
    --from-file=cacert=$CA_FILE

    Anthos Service Mesh

    kubectl create -n istio-system secret generic $SECRET_NAME-cacert  \
    --from-file=cacert=$CA_FILE
  3. Configura la proprietà virtualhosts nel file delle sostituzioni:
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: MUTUAL  # Note: Be sure to specify MUTUAL
        sslSecret: $SECRET_NAME