NetScaler SSL Offloading Funktionsweise - Zertifikat Installation

In diesem Blogbeitrag geht es um die Funktionsbeschreibung des SSL-Offloadings, sowie allgemeine Konfigurationsschritte auf einer NetSclaler VPX Appliance (NetScaler ADC).

SSL Offloading (SSL acceleration)

SSL Offloading ist eine der Hauptfunktionen eines ADCs (Application Delivery Controller). Das SSL Offloading bietet die Möglichkeit die CPU-intensive Berechnung des SSL-Handshakes bei dem Verbindungsaufbau zwischen einem Client und einem Zielserver (z.B. Webserver) von einem Server auf den NetScaler (oder ähnliches) auszulagern. Der NetScaler (nur SDX/MPX) besitzt nämlich einen entsprechenden Chip und kann im Gegensatz zu einem „normalen“ System die kryptografische Berechnungen (Entschlüsseln / Verschlüsseln) CPU-schonend abarbeiten.

 

NetScaler SSL Offload

 

Der initiale Handshake und die asymmetrische Verschlüsselung sind zwei besonders rechenintensive Vorgänge. Auch die Größe des Schlüssels (1024 Bit, 2048 Bit oder 4096 Bit) spielt eine wichtige Rolle. Die mögliche Schlüsselgröße ist auf 4096Bit begrenzt.


Was ist SSL

Obwohl die Bezeichnung SSL (Secure Socket Layer) nicht mehr aktuell ist, bleibt diese immer noch weit verbreitet. Die korrekte Bezeichnung die im weiteren Text beschriebenen Technologie wäre: TLS (Transport Layer Security).

  • TSL ist nicht anders als eine Weiterentwicklung des SSLs.
  • TLS ist ein Authentifizierung- und Verschlüsselungsprotokoll. 
  • TLS dient der Sicherung der Kommunikation zwischen einem Endbenutzer und dem Zielsystem (z.B. Webserver).
  • Man konnte TLS auch als eine Methode beschreiben, wie die Clients und die Server kryptografische Informationen austauschen. Die kryptografische Informationen werden in den Dateien im X.509 Format gespeichert, die man das immer noch SSL-Zertifikat nennt.

TLS Cipher Suite

Eine Cipher Suite ist eine Kombination von unterschiedlichen kryptografischen Algorithmen, die in einer bestimmten TLS-Sitzung verwendet werden. Eine Cipher Suite besteht aus vier Blöcken:

  • Algorithmus zum Erzeugen von Sitzungsverschlüsselungsschlüsseln (Session Key Exchange)
  • der zur Authentifizierung des Servers verwendete Algorithmus;
  • richtiger symmetrischer Verkehrsverschlüsselungsalgorithmus;
  • den Integritätskontrollalgorithmus (MAC, Message Authentication Code).

  

Cipher Suites Struktur

 

Die auf oberem Bild dargestellten Algorithmen zeigen nur eine mögliche Zusammensetzung. Die korrekte Zusammensetzung der Algorithmen macht aus einer Cipher Suite einer starken Cipher Suite oder einer schwachen.

Die Sicherheitsanforderung ändert sich ständig. Aus diesem Grund sollte dafür sorgt werden, dass die eingetragen Cipher Suites immer aktuell bleiben. Auf diese Seite können Sie erfahren welche Cipher Suites seitens Citrix empfohlen werden: Scoring an A+ at SSLlabs.com with Citrix NetScaler – Q2 2018 update

 

SSL Handshake

In einfachen Worten gefasst, lässt sich ein SSL Handshake als ein Austausch von kryptografischen Informationen bezeichnen, die als Ziel haben, einen geheimen Schlüssel festzulegen, mit denen sie untereinander kommunizieren. Der Handshake auf der Serverseite ist ein sehr berechnungsintensiver Prozess. Je größer der Schlüssel (1024 Bit, 2048 Bit, 4096 Bit), desto rechenintensiver wird es.

  • SSL Handshake finden nach dem TCP Handshake statt
  • Root-Zertifikat muss sich in Browser Speichert-Ort des Clients befinden
  • Server-Zertifikat und Root-Zertifikat müssen sich auf dem Server befinden


Abarbeitungsreihenfolge

1. Der Client sendet Client-Hello mit dem Satz (Liste) von supporteten Cipher Suites. Die Liste, die nach Priorität sortiert ist, beinhaltet: TSL Version, die Liste der unterstützen Cipher Suites Versionen und die von Client unterstützte Kompressionsmethode.
2. Der Server sendet Server-Hello mit dem ausgewähltem Cipher Suite (z.B. wie oben abgebildet TLS 1.2) und der Server Public Key, welcher sich in dem Server-Certifikat befindet. Dies bedeutet:

  1. zum Generieren von Sitzungsschlüsseln wird Elliptic-Curve Diffie–Hellman verwendet.
  2. die Serverauthentifizierung wird mit RSA durchgeführt.
  3. um den Datenverkehr zu verschlüsseln, wird AES-Algorithmus mit einer Schlüssellänge von 128 Bit verwendet.
  4. GCM – bezieht sich auf den Punkt C und ist ein effizienter Betriebsmodus für symmetrische Blockchiffren.

3. Der Server sendet Server-Hello-Done
4. Key Exchange - der Client überprüft die Zertikat-Inhalte (Signature, Validität, Server-Name) und generiert bzw. verschlüsselt auf Basis des Public Keys ein Pre-Master-Secret. Für die Verschlüsselung wird überwiegend Diffie-Hellman- Kryptographieverfahren verwendet.
5. Der Client sendet "client key exchange" den generierten Schlüssel und die Ciphers an den Server.
6. Der Server enthält den Pre-Master-Secret und entschlüsselt dieser mit den Privat Key. Seit diesem Zeitpunkt haben beide das gleiche Pre-Master-Secret. Der Server genierirt einen Symmetrischen Schlüssel für die beidenseitigen Kommunikation.
7. Der Client sendet Client Finished
8. Der Server sendet Change Cipher Spec an den Client
9. Beide Seite verfügen über die gleichen symmetrischen Schlüssel
10. Der Server sendet Finished

 

NetScaler SSL Handshake

Vertrauenskette (Chain of Trust)

Die bildliche Darstellung einer Vertrauenskette auf einem NetScaler:

 

SSL Chain of Trust

Eine Zertifikatskette ist eine hierarchische Liste von Zertifikaten, die es ermöglicht die Gültigkeit des untergeordneten Zertifikats durch das übergeordnete Zertifikat zu validieren. Ober in der Hierarchie befindet sich ein Zertifikat der Stammzertifizierungsstelle (Root CA). Die Anzahl der Zertifikate in einer Kette kann unterschiedlich sein. Nach einer Root CA folgt immer eine intermediate CA, die ein untergeordnetes Zertifikat erstellt. Je nach Anbietet können mehrere Zertifikate in einer Vertrauenskette existieren. Dadurch wird eine zusätzliche Sicherheitsstufe geschaffen, damit keine Zertifikate direkt vom CA-Stammzertifikat ausgestellt werden. Wenn die Root CA und eine untergeordnete CA kompromittiert wird, werden alle ausgestellte Zertifikate nicht mehr gültig.

Hier können Sie Ihr installiertes Zertifikat analysieren lassen: SSL-trust.com

Es existieren drei Zertifikatstypen:

  • Root CA
  • Intermediate
  • Server (Client) Certificate

 

Zertifikate auf einem Endgerät (Client)

Damit ein Client (Web Client) eine sichere Verbindung zwischen einem Webbrowser und einem Server herstellen kann, muss in den meisten Fällen ein Stammzertifikat einer Root CA im Browser-Zertifikatspeicher und auf dem Client installiert sein. Die Stammzertifikate einer öffentlichen Zertifizierungsstelle werden automatisch installiert und bei einem Update aktualisiert. Das Stammzertifikat einer privaten CA wird bei dem Domain Join an der richtigen Stelle gespeichert.

Allgemeine Informationen

  • Wenn die HA konfigurieren wollen, müssen Sie das Serverzertifikat und die Schlüsseldateien sowohl auf der primären als auch auf der sekundären Citrix ADC-Appliance abspeichern.
  • Auf einer ADC Appliance können maximal zwei Zertifikate für SSL VIP oder SSL Server angebunden werden, jeweils vom Typ RSA und vom Typ DAS. Mehr zum Thema RSA/DAS hier.
  • Binden die Serverzertifikat nie im laufenden Betrieb an. Dies führt zur Unterbrechung der bestehenden Session.

 

Zertifikate erstellen / beantragen / installieren

Bevor Sie ein SSL-Zertifikat mit einem vServer verknüpft wird, sind unter aufgelisteten Schritte notwendig:

  1. Generieren Sie ein Privat Key auf dem NetScaler. (aktuell wird die Schlüsselgröße bis zu 4096Bit unterstützt) Ein Privat Key ist eine wichtige Bestandskomponenten eines Zertifikates. Dieser soll sicher aufgewartet werden.
  2. Erstellen Sie ein Certificate Signing Request (CSR) auf Basis des Privat Keys ebenso auf dem NetScaler.
  3. Leiten Sie den Request (CSR) an eine Zertifizierungsstelle (Certificate Authority / CA) Ihrer Wahl weiter.
    1. Laden Sie das Zertifikat auf den NetScaler (/nsconfig/ssl) hoch.
    2. Wenn Sie die HA konfigurieren wollen, müssen Sie das Serverzertifikat und die Schlüsseldateien sowohl auf der primären als auch auf der sekundären Citrix ADC-Appliance speichern.
  4. Erstellen Sie ein Zertifikat-Schlüssel-Paar auf der Citrix ADC-Appliance
  5. Verlinken Sie das Server Zertifikat mit dem Intermediate und/oder Root Zertifikat (Maximal können Sie bis zu 9 Intermediate CA in der Kette haben.
  6. Binden Sie das Zertifikat an den virtuellen Server

Alle darauffolgenden Schritte beschreiben eine manuelle Installation und Konfiguration der Zertifikate. Der NetScaler bietet auch eine alternative Wizard-gesteuerte Konfiguration an.

 001 NS Cert Wizard

 

1. RSA Schlüssel erstellen:

1.1. Navigieren zum Traffic Management > SSL > SSL Files > Keys
1.2 Klicken Sie auf die Schaltfläche Create RSA Key

101 NS Cert Create

1.3. Füllen Sie alle Felder aus und klicken Sie auf Create

  • Key Filename: Name des Files eingeben
  • Key Size (bist): 2048
  • Public Exponent Value: P4
  • Key Format: wählen Sie PEM aus
  • PEM Encording Algorithm: wählen Sie AES256 aus
  • PEM Passphrase / Confirm PEM Passphrase: geben Sie das Passwort ein

102 NS Cert Create

Der RSA-Key wird in dem Ordner /nsconfig/ssl abgespeichert

102 2 NS Cert Create

2.1. Weiterhin erstellen wir einen CSR Request.

2.2. Navigieren zum Traffic Management > SSL > SSL Files > CSRs > Create Certificate Signing Request (CSR)

103 NS Cert Create

2.3. In dem Feld Request File Name geben Sie den gewünschten Name ein und wählen die eine vorher erstelle Key-Datei. Anschließend füllen Sie alle erforderlichen Felder aus.  

 Key Format:   PEM 
 PEM Passphrase:  Ihr Passwort aus dem Punkt 1.3 
 Digest Method:  SHA256
 Subject Alternative Name:   *optional

 

Zert Error* Wenn Sie kein Subject Alternative Name eingeben, werden Sie in allen Web-Browser außer Microsofts Internet Explorer und Edge mit der Meldung Non secure (Your connection is not privat) konfrontiert.

 

104 1 NS Cert Create 

 Common Name:  name.domainname.com
 Organization Name:  optional
 Organization Unit:  optional
 Email Address:  optional
 City:  optional
 Country:  optional
 Challange Password:  Passwort festlegen
 Company Name:  optional

 

104 2 NS Cert Create

2.4.  In diesem Schritt werden die Inhalte der erstellten Datei kopiert und für die weitere Verarbeitung bzw. Zertifikat-Erstellung der CA Ihrer Wahl übergeben.

Wählen Sie die CSR-Datei aus und klicken Sie auf View-Button. 

105 NS Cert Create

2.5. Geben Sie die Inhalte an die CA weiter, ohne die Inhaltsstruktur zu ändern.

106 NS Cert Create

Offizielle Dokumentation: Create and Use SSL Certificates on a Citrix ADC Appliance

 


Server Zertifikat aus einem Certificate Signing Request Request erstellen

In meinem Beispiel verwende ich eine interne Windowsbasierte Zertifizierungsstelle

3.1. Öffnen Sie die Microsoft Active Directory Certificate Services Seite (http://CAServerName/CertSrv/) und klicken Sie auf Schaltfläche Request a certificate  

107 NS Cert Create

3.2. Klicken Sie weiter auf die markierte Fläche Or, submit an advanced certicate request

108 NS Cert Create

3.3. Weiter auf Submit a certificate request by using a base-64-encoded...

109 NS Cert Create

3.4. Kopieren Sie die Inhalte der CSR-Datei in das Feld Saved Request.  Wählen Sie Web Server aus dem Dropdown-Menü Certificate Template

110 NS Cert Create

3.5. Wählen Sie die Option Base 64 encoded und klicken Sie auf Download Certificate

111 NS Cert Create

 

3.6. Die in dem vorherigen Schritt erstellte Zertifikatsdatei soll auf dem NetScaler in den Ordner /nsconfig/ssl hochgeladen werden.

 

Zertifikat Installation  / Certificate-Key Pair erstellen

4.1. Navigieren zum Traffic Management > SSL > SSL Certificate > Server Certificate

4.2. Klicken Sie auf Install-Button

112 NS Cert Create

4.3.  Geben im dem Feld Certificate-Key Pair Name den Name des Zertifikats ein.

Certificate File Name: wählen Sie die bereits geladene Zertifikat-Datei. Wenn die Zertifikat-Datei noch nicht hochgeladen, können Sie diese jetzt hochladen.

Key File Name: wählen Sie den Key-File

Geben Sie das Passwort ein. Lassen weitere Einstellung (Notify When Expiere und Notification Perion) defaultmäßig aktiviert.

Anschließen klicken Sie auf Install

 114 NS Cert Create

 

Zertifikate verlinken

5. In diesen, letzten Schritten sollen wir unser installieres Zertifikat mit den dazugehörigen Root- und/oder Intermidiate-Zertifikat verlinken, um die Vertrauenskette zu bilden. Weiter in diesem Artikel finden Sie eine Anleitung, wie Sie aus einem Server-Zertifikat ein Root-Zertifikat extrahieren können.

5.1. Zuerst installieren wir das Root- Zertifikat unserer internen Zertifizierungsstelle. Bei Bedarf werden auf den gleichen Art und Weise auch die Intermidiate-Zertifikate installiert.

Navigieren zum Traffic Management > SSL > SSL Certificate > CA Certificate und klicken Sie auf Install 

115 NS Cert Create

5.2. Geben im dem Feld Certificate-Key Pair Name den Name für das Root-Zertifikat ein.

Certificate File Name: wählen Sie die Zertifikat-Datei.

Schließen Sie die Installation durch das Klicken auf die Install-Taste ab.

116 NS Cert Create

Das installierte Zertifikat erscheint auf der Konsole.

117 NS Cert Create

5.3. Navigieren zum Traffic Management > SSL > SSL Certificate > Server Certificates

Wählen Sie das Server-Zertifikat und klicken Sie auf Schaltfläche Select Action

118 NS Cert Create

Wählen Sie die Option Link 

119 NS Cert Create

In dem Punkt 5.2 installiertes Zertifikat wird automatisch erkannt. Bestätigen Sie die Auswahl mit OK

120 NS Cert Create

Hiermit ist die Installation eines Zertifikats abgeschlossen. Sie können dieses für die NetScaler-Services Ihrer Wahl verwenden.

 

 

Root Zertifikat aus einem Server Zertifikat exportieren

1. Doppelklick auf dem Zertifikat > Registerkarte Certification Path > View Certificate

101 Export Root Certificate

2. Registerkarte Details > Copy to File anklicken

102 Export Root Certificate

3. Den Certificate Export Wizard folgen… Weiter

103 Export Root Certificate

4. Base-64 encoded X.509 (.CER) auswählen

104 Export Root Certificate

5. Speicherplatz und der Dateiname festlegen.

105 Export Root Certificate

Wizard schließen

106 Export Root Certificate

Nützliche Links:

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.