Configurazione di TLS e mTLS sul gateway in entrata

Questo argomento spiega come attivare TLS unidirezionale e mTLS reciproca su ingressgateway .

Configurazione di TLS unidirezionale

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

Opzione 1: coppia chiave/certificato

Fornisci i file di chiave e certificato SSL nella proprietà virtualhosts del file di override:

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

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

Opzione 2: secret Kubernetes

Crea un secret Kubernetes e aggiungilo al file di override.

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

    Gateway in entrata 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 di override:
    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 configurare 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 di override:

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 alias host corrispondenti, $CA_FILE è un certificato autorizzato e $CERT_FILE e $KEY_FILE sono file di chiave e certificato TLS. Vedi Creare certificati TLS.

Opzione 2: secret Kubernetes

Crea due secret Kubernetes. Il primo secret è per la coppia di chiavi/certificato SSL e il secondo è per la CA. Quindi, aggiungili al file di override.

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

    Gateway in entrata 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 in entrata 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 di override:
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: MUTUAL  # Note: Be sure to specify MUTUAL
        sslSecret: $SECRET_NAME