Configura TLS y mTLS en la puerta de enlace de entrada

En este tema, se explica cómo habilitar TLS y mTLS unidireccionales en la puerta de enlace de Ingress.

Configura TLS unidireccional

Usa TLS unidireccional para proteger los extremos del proxy de la API en la puerta de enlace de entrada. Para habilitar TLS unidireccional, configura la entrada con pares de claves/certificados TLS o con un Secreto de Kubernetes, como se explica en las siguientes opciones.

Opción 1: par de claves/certificado

Proporciona certificados SSL y archivos de claves en la propiedad virtualhosts en tu archivo de anulación:

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

En el ejemplo anterior, $ENVIRONMENT_GROUP_NAME es el nombre de un grupo de entornos con los alias de host correspondientes, mientras que $CERT_FILE y $KEY_FILE son archivos de certificados y claves de TLS. Consulta Crea certificados TLS.

Opción 2: Secret de Kubernetes

Crea un Secret de Kubernetes y agrégalo a tu archivo de anulaciones.

  1. Crea el Secret en uno de los dos espacios de nombres siguientes:
    • El espacio de nombres apigee si usas la puerta de enlace de entrada de Apigee.
    • El espacio de nombres istio-system si usas Anthos Service Mesh instalado por el cliente.

    Puerta de enlace de entrada de 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 propiedad virtualhosts en el archivo de anulación:
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: SIMPLE  # Note: SIMPLE is the default, so it is optional.
        sslSecret: $SECRET_NAME

Configura mTLS

En lugar de TLS unidireccional, puedes configurar mTLS en la puerta de enlace de entrada. Hay dos opciones para configurar mTLS, como se explica a continuación.

Opción 1: par de claves/certificado y archivo CA

Proporciona un certificado de autoridad certificadora (CA) con certificado SSL y archivos de claves en la propiedad virtualhosts de tu archivo de anulación:

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

En el ejemplo anterior, $ENVIRONMENT_GROUP_NAME es el nombre de un grupo de entorno con los alias de host correspondientes, $CA_FILE es un certificado autorizado, y $CERT_FILE y $KEY_FILE son la clave y el certificado TLS. Consulta Crea certificados TLS.

Opción 2: Secrets de Kubernetes

Crea dos Secrets de Kubernetes. El primer secret es para el par de claves/certificado SSL y el segundo es para la CA. Luego, agrégalos a tu archivo de anulación.

  1. Crea dos Secrets de Kubernetes en uno de los siguientes espacios de nombres:
    • El espacio de nombres apigee si usas la puerta de enlace de entrada de Apigee.
    • El espacio de nombres istio-system si usas Anthos Service Mesh instalado por el cliente.

    Puerta de enlace de entrada de 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 secreto para la CA:

    Puerta de enlace de entrada de 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 propiedad virtualhosts en el archivo de anulación:
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: MUTUAL  # Note: Be sure to specify MUTUAL
        sslSecret: $SECRET_NAME