Configurar TLS e mTLS no gateway de entrada

Este tópico explica como ativar o TLS unidirecional e o mTLS no ingressgateway .

Configurar TLS unidirecional

Use TLS unidirecional para proteger os pontos finais do proxy da API no gateway de entrada. Para ativar o TLS unidirecional, configure a entrada com pares de chaves/certificados TLS ou com um segredo do Kubernetes, conforme explicado nas opções seguintes.

Opção 1: par de chaves/certificados

Forneça os ficheiros de chave e certificado SSL na propriedade virtualhosts no ficheiro de substituições:

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

Onde $ENVIRONMENT_GROUP_NAME é o nome de um grupo de ambientes com alias de anfitriões correspondentes, e $CERT_FILE e $KEY_FILE são ficheiros de certificado e chave TLS. Consulte o artigo Crie certificados TLS.

Opção 2: segredo do Kubernetes

Crie um segredo do Kubernetes e adicione-o ao ficheiro de substituições.

  1. Crie o Secret num dos dois seguintes espaços de nomes:
    • apigee se estiver a usar o gateway de entrada do Apigee.
    • istio-system se estiver a usar o Anthos Service Mesh instalado pelo cliente.

    Gateway de entrada do 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. Configure a propriedade virtualhosts no ficheiro de substituições:
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: SIMPLE  # Note: SIMPLE is the default, so it is optional.
        sslSecret: $SECRET_NAME

Configurar mTLS

Em vez do TLS unidirecional, pode configurar o mTLS no gateway de entrada. Existem duas opções para configurar o mTLS, conforme explicado abaixo.

Opção 1: par de chaves/certificados e ficheiro de CA

Faculte um certificado de autoridade de certificação (AC) com ficheiros de chave e certificado SSL na propriedade virtualhosts no ficheiro de substituições:

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

Onde $ENVIRONMENT_GROUP_NAME é o nome de um grupo de ambientes com alias de anfitriões correspondentes, $CA_FILE é um certificado autorizado e $CERT_FILE e $KEY_FILE são ficheiros de chave e certificado TLS. Consulte o artigo Crie certificados TLS.

Opção 2: segredos do Kubernetes

Crie dois Secrets do Kubernetes. O primeiro segredo destina-se ao par de chaves/certificado SSL e o segundo destina-se à AC. Em seguida, adicione-os ao ficheiro de substituições.

  1. Crie dois segredos do Kubernetes num dos dois seguintes espaços de nomes:
    • apigee se estiver a usar o gateway de entrada do Apigee.
    • istio-system se estiver a usar o Anthos Service Mesh instalado pelo cliente.

    Gateway de entrada do 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. Crie um segredo para a CA:

    Gateway de entrada do 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. Configure a propriedade virtualhosts no ficheiro de substituições:
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: MUTUAL  # Note: Be sure to specify MUTUAL
        sslSecret: $SECRET_NAME