Ingress Controller de Citrix ADC

Habilitar la validación de certificados de Citrix ADC en el Citrix Ingress Controller

El Citrix Ingress Controller proporciona una opción para garantizar una comunicación segura entre el Citrix Ingress Controller de Citrix y Citrix ADC mediante el protocolo HTTPS. Puede lograrlo mediante el uso de certificados precargados en Citrix ADC. Como medida adicional para evitar cualquier posible ataque de intermediario (MITM), el Citrix Ingress Controller también le permite validar el certificado de servidor SSL proporcionado por Citrix ADC.

Para habilitar la validación de firmas de certificados y nombres comunes del certificado del servidor ADC por parte del Citrix Ingress Controller, los administradores de seguridad pueden instalar opcionalmente certificados firmados (o autofirmados) en Citrix ADC y configurar el Citrix Ingress Controller con el paquete de certificados de CA correspondiente. Una vez que se habilita la validación y se configuran los paquetes de certificados de CA, el Citrix Ingress Controller comienza a validar el certificado (incluida la validación del nombre del certificado). Si la validación falla, el Citrix Ingress Controller registra lo mismo y ninguna de las configuraciones se utiliza en un canal inseguro.

Esta validación está desactivada de forma predeterminada y un administrador puede elegir habilitar la validación en el Citrix Ingress Controller de la siguiente manera.

Requisitos previos

  • Para habilitar la validación de certificados, debe configurar un Citrix ADC con certificados de servidor SSL adecuados (con el nombre de servidor o la dirección IP adecuados en el asunto del certificado). Para obtener más información, consulte la documentación de Citrix ADC.

  • El certificado de CA para el par de claves de certificado del servidor instalado se utiliza para configurar el Citrix Ingress Controller para habilitar la validación de estos certificados.

Configurar el Citrix Ingress Controller para la validación de certificados

Para que un certificado de CA esté disponible para la configuración, debe configurar el certificado de CA como un secreto de Kubernetes para que el Citrix Ingress Controller pueda acceder a él en un volumen de almacenamiento montado.

Para generar un secreto de Kubernetes para un certificado existente, usa el siguiente comando kubectl:

  $ kubectl create secret generic ciccacert --from-file=path/myCA.pem –namespace default

  secret “ciccacert” created

Como alternativa, también puede generar el secreto de Kubernetes con la siguiente definición de YAML:

    apiVersion: v1
    kind: Secret
    metadata:
      name: ciccacert
      data:
        myCA.pem: <base64 encoded cert>

A continuación, se muestra un archivo YAML de ejemplo con la configuración del Citrix Ingress Controller para habilitar la validación de certificados.


kind: Pod
metadata:
  name: cic
  labels:
    app: cic
spec:
  serviceAccountName: cpx
  # Make secret available as a volume
  volumes:
  - name: certs
    secret:
      secretName: ciccacert
  containers:
  - name: cic
    image: "xxxx"
    imagePullPolicy: Always
    args: []
    # Mounting certs in a volume path
    volumeMounts:
    - name: certs
      mountPath: <Path to mount the certificate>
      readOnly: true
    env:
    # Set Citrix ADM Management IP
    - name: "NS_IP"
      value: "xx.xx.xx.xx"
    # Set port for Nitro
    - name: "NS_PORT"
      value: "xx"
    # Set Protocol for Nitro
    - name: "NS_PROTOCOL"
      # Enable HTTPS protocol for secure communication
      value: "HTTPS"
    # Set username for Nitro
    - name: "NS_USER"
      value: "nsroot"
    # Set user password for Nitro
    - name: "NS_PASSWORD"
      value: "nsroot"
    # Certificate validation configurations
    - name: "NS_VALIDATE_CERT"
      value: "yes"
    - name: "NS_CACERT_PATH"
      value: " <Mounted volume path>/myCA.pem"
<!--NeedCopy-->

Como se especifica en el archivo YAML de ejemplo, a continuación se muestran los cambios específicos necesarios para habilitar la validación de certificados en el Citrix Ingress Controller.

Configurar el secreto de Kubernetes como un volumen

  • Configure una sección de volumen declarada con secret como origen. En este caso, secretName debe coincidir con el nombre secreto de Kubernetes creado para el certificado de CA.

Configurar una ubicación de montaje de volumen para el certificado de CA

  • Configurar una sección volumeMounts con el mismo nombre que el de secretName de la sección de volumen
  • Declare un directorio mountPath para montar el certificado de CA
  • Establece el volumen como ReadOnly

Configurar la comunicación segura

  • Establecer la variable de entorno NS_PROTOCOL como HTTPS
  • Establecer la variable de entorno NS_PORT como puerto HTTPS ADC

Habilitar y configurar la ruta de validación y certificado de CA

  • Establecer la variable de entorno NS_VALIDATE_CERT en yes (no para inhabilitarla)
  • Defina la variable de entorno NS_CACERT_PATH como la ruta de montaje (volumeMounts->mountPath)/nombre de archivo PEM (utilizado al crear el secreto).
Habilitar la validación de certificados de Citrix ADC en el Citrix Ingress Controller