Citrix ADC Ingress Controller

Aktivieren der Citrix ADC-Zertifikatsüberprüfung im Citrix Ingress Controller

Der Citrix Ingress Controller bietet eine Option, um eine sichere Kommunikation zwischen dem Citrix Ingress Controller und Citrix ADC mithilfe des HTTPS-Protokolls sicherzustellen. Sie können dies erreichen, indem Sie im Citrix ADC vorinstallierte Zertifikate verwenden. Als zusätzliche Maßnahme, um einen möglichen Man-in-the-Middle (MITM) -Angriff zu vermeiden, können Sie mit dem Citrix Ingress Controller auch das vom Citrix ADC bereitgestellte SSL-Serverzertifikat validieren.

Um die Zertifikatssignatur und die Validierung des allgemeinen Namens des ADC-Serverzertifikats durch den Citrix Ingress Controller zu aktivieren, können Sicherheitsadministratoren optional signierte (oder selbstsignierte) Zertifikate im Citrix ADC installieren und den Citrix Ingress Controller mit dem entsprechenden CA-Zertifikatspaket konfigurieren. Sobald die Validierung aktiviert und CA-Zertifikatpakete konfiguriert sind, beginnt der Citrix Ingress Controller mit der Validierung des Zertifikats (einschließlich der Validierung des Zertifikatsnamens). Wenn die Validierung fehlschlägt, protokolliert der Citrix Ingress Controller dasselbe und keine der Konfigurationen wird auf einem unsicheren Kanal verwendet.

Diese Validierung ist standardmäßig ausgeschaltet und ein Administrator kann die Validierung im Citrix Ingress Controller wie folgt aktivieren.

Voraussetzungen

  • Um die Zertifikatsüberprüfung zu aktivieren, müssen Sie einen Citrix ADC mit den richtigen SSL-Serverzertifikaten (mit dem richtigen Servernamen oder der richtigen IP-Adresse im Zertifikatsgegenstand) konfigurieren. Weitere Informationen finden Sie in der Citrix ADC-Dokumentation.

  • Das CA-Zertifikat für das installierte Serverzertifikat-Schlüsselpaar wird verwendet, um den Citrix Ingress Controller für die Validierung dieser Zertifikate zu konfigurieren.

Konfigurieren Sie den Citrix Ingress Controller für die Zertifikatsüberprüfung

Um ein CA-Zertifikat für die Konfiguration verfügbar zu machen, müssen Sie das CA-Zertifikat als Kubernetes-Geheimnis konfigurieren, damit der Citrix Ingress Controller auf einem bereitgestellten Speichervolume darauf zugreifen kann.

Verwenden Sie den folgenden kubectl Befehl, um einen Kubernetes-Schlüssel für ein vorhandenes Zertifikat zu generieren:

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

  secret “ciccacert” created

Alternativ können Sie das Kubernetes-Geheimnis auch mit der folgenden YAML-Definition generieren:

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

Im Folgenden finden Sie eine YAML-Beispieldatei mit der Citrix Ingress Controller-Konfiguration zum Aktivieren der Zertifikatsüberprüfung.


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

Wie in der YAML-Beispieldatei angegeben, sind im Folgenden die spezifischen Änderungen aufgeführt, die für die Aktivierung der Zertifikatsüberprüfung im Citrix Ingress Controller erforderlich sind.

Konfigurieren von Kubernetes Secret als Volume

  • Konfigurieren Sie einen mit deklarierten Volume-Abschnitt secret als Quelle. Hier secretName sollte mit dem geheimen Kubernetes-Namen übereinstimmen, der für das CA-Zertifikat erstellt wurde.

Konfigurieren eines Volume-Mount-Speicherorts für das CA-Zertifikat

  • Konfigurieren Sie einen volumeMounts Abschnitt mit demselben Namen wie secretName im Volume-Abschnitt
  • Deklarieren Sie ein mountPath Verzeichnis für das Einhängen des CA-
  • Stellen Sie die Lautstärke auf ReadOnly

Konfigurieren Sie sichere Kommunikation

  • Stellen Sie die Umgebungsvariable NS_PROTOCOL auf HTTPS
  • Stellen Sie die Umgebungsvariable NS_PORT als ADC-HTTPS-Port

Aktivieren und Konfigurieren von CA-Validierung und Zertifikatspfad

  • Stellen Sie die Umgebungsvariable NS_VALIDATE_CERT auf yes ( no zum Deaktivieren)
  • Stellen Sie die Umgebungsvariable NS_CACERT_PATH als Mount-Pfad (VolumeMounts->MountPath)/PEM-Dateinamen (wird beim Erstellen des Geheimnisses verwendet).
Aktivieren der Citrix ADC-Zertifikatsüberprüfung im Citrix Ingress Controller