Contrôleur d'entrée Citrix ADC

Activer la validation du certificat Citrix ADC dans le Citrix ingress controller

Le Citrix ingress controller fournit une option pour garantir la sécurité des communications entre le Citrix ingress controller et Citrix ADC à l’aide du protocole HTTPS. Vous pouvez y parvenir en utilisant des certificats préchargés dans Citrix ADC. Comme mesure supplémentaire pour éviter toute attaque de type « homme du milieu » (MITM), le Citrix ingress controller vous permet également de valider le certificat de serveur SSL fourni par Citrix ADC.

Pour activer la signature du certificat et la validation du nom commun du certificat du serveur ADC par le Citrix ingress controller, les administrateurs de sécurité peuvent éventuellement installer des certificats signés (ou auto-signés) dans Citrix ADC et configurer le Citrix ingress controller avec le bundle de certificats d’autorité de certification correspondant. Une fois la validation activée et les ensembles de certificats d’autorité de certification configurés, le Citrix ingress controller commence à valider le certificat (y compris la validation du nom du certificat). Si la validation échoue, le Citrix ingress controller enregistre la même chose et aucune des configurations n’est utilisée sur un canal non sécurisé.

Cette validation est désactivée par défaut et un administrateur peut choisir d’activer la validation dans le Citrix ingress controller comme suit.

Conditions préalables

  • Pour activer la validation des certificats, vous devez configurer un Citrix ADC avec des certificats de serveur SSL appropriés (avec un nom de serveur ou une adresse IP appropriés dans l’objet du certificat). Pour plus d’informations, consultez la documentation Citrix ADC.

  • Le certificat d’autorité de certification pour la paire de clés de certificat du serveur installé est utilisé pour configurer le Citrix ingress controller afin d’activer la validation de ces certificats.

Configurer le Citrix ingress controller pour la validation des certificats

Pour qu’un certificat d’autorité de certification soit disponible pour la configuration, vous devez le configurer en tant que secret Kubernetes afin que le Citrix ingress controller puisse y accéder sur un volume de stockage monté.

Pour générer un secret Kubernetes pour un certificat existant, utilisez la commande kubectl suivante :

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

  secret “ciccacert” created

Vous pouvez également générer le secret Kubernetes à l’aide de la définition YAML suivante :

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

Voici un exemple de fichier YAML avec la configuration du Citrix ingress controller pour activer la validation de certificat.


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-->

Comme indiqué dans l’exemple de fichier YAML, voici les modifications spécifiques requises pour activer la validation de certificat dans le Citrix ingress controller.

Configurer le secret Kubernetes en tant que volume

  • Configurez une section de volume déclarée avec secret comme source. Ici, secretName doit correspondre au nom secret Kubernetes créé pour le certificat de l’autorité de certification.

Configurer un emplacement de montage de volume pour le certificat d’autorité de certification

  • Configurez une section volumeMounts portant le même nom que celui de secretName dans la section de volume
  • Déclarer un répertoire mountPath pour monter le certificat d’autorité de certification
  • Réglez le volume sur ReadOnly

Configurer une communication sécurisée

  • Définissez la variable d’environnement NS_PROTOCOL sur HTTPS
  • Définissez la variable d’environnement NS_PORT en tant que port HTTPS ADC

Activer et configurer la validation de l’AC et le chemin du certificat

  • Définissez la variable NS_VALIDATE_CERT d’environnement sur yes ( no pour la désactivation)
  • Définissez la variable d’environnement NS_CACERT_PATH comme chemin de montage (VolumeMounts->MountPath) /nom de fichier PEM (utilisé lors de la création du secret).
Activer la validation du certificat Citrix ADC dans le Citrix ingress controller