Configurar TLS y mTLS en la pasarela de entrada

En este tema se explica cómo habilitar TLS unidireccional y TLS mutuo en el ingressgateway.

Configurar TLS unidireccional

Usa TLS unidireccional para proteger los endpoints de proxy de API en la puerta de enlace de entrada. Para habilitar TLS unidireccional, configura el recurso Ingress con pares de certificado y clave TLS o con un secreto de Kubernetes, tal como se explica en las siguientes opciones.

Opción 1: par de claves/certificados

Proporciona los archivos de certificado y clave SSL en la propiedad virtualhosts de tu archivo de anulaciones:

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

Donde $ENVIRONMENT_GROUP_NAME es el nombre de un grupo de entornos con los alias de host correspondientes, y $CERT_FILE y $KEY_FILE son archivos de clave y certificado TLS. Consulta Crear certificados TLS.

Opción 2: secreto de Kubernetes

Crea un secreto de Kubernetes y añádelo al archivo de anulaciones.

  1. Crea el secreto en el espacio de nombres apigee:
    kubectl create -n apigee secret generic $SECRET_NAME  \
      --from-file=key=$KEY_FILE \
      --from-file=cert=$CERT_FILE
  2. Configura la propiedad virtualhosts en el archivo de anulaciones:
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: SIMPLE  # Note: SIMPLE is the default, so it is optional.
        sslSecret: $SECRET_NAME

Configurar mTLS

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

Opción 1: par de claves/certificados y archivo de AC

Proporciona datos de certificado TLS que contengan certificados de autoridad de certificación:

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

Donde $ENVIRONMENT_GROUP_NAME es el nombre de un grupo de entornos con los alias de host correspondientes, $CA_FILE especifica los datos del certificado TLS (archivo de paquete de CA) que contiene los certificados de la autoridad de certificación, y $CERT_FILE y $KEY_FILE son los archivos de clave y certificado TLS. Consulta Crear certificados TLS.

Opción 2: secretos de Kubernetes

Crea dos secretos de Kubernetes. El primer secreto es para el par de certificado y clave SSL, y el segundo es para la AC. A continuación, añádelos al archivo de anulaciones.

  1. Crea dos secretos de Kubernetes en el espacio de nombres apigee:
    kubectl create -n apigee secret generic $SECRET_NAME  \
      --from-file=key=$KEY_FILE \
      --from-file=cert=$CERT_FILE
  2. Crea un secreto para la AC:
    kubectl create -n apigee secret generic $SECRET_NAME-cacert  \
      --from-file=cacert=$CA_FILE
  3. Configura la propiedad virtualhosts en el archivo de anulaciones:
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: MUTUAL  # Note: Be sure to specify MUTUAL
        sslSecret: $SECRET_NAME