Linux Virtual Delivery Agent

Selbstsignierte Zertifikate für WebSocket konfigurieren

Ab der Erstveröffentlichung von 2402 LTSR können Sie mit Citrix Virtual Apps and Desktops die WebSocket-Technologie über das Citrix Brokering Protocol (CBP) verwenden, um die Kommunikation zwischen VDAs und Delivery Controllern zu erleichtern. Dieses Feature erfordert nur den TLS-Port 443 für die Kommunikation vom VDA zum Delivery Controller. Weitere Informationen finden Sie unter WebSocket-Kommunikation zwischen VDA und Delivery Controller in der Citrix Virtual Apps and Desktops-Dokumentation.

WebSocket ist eine leistungsstarke Technologie, die eine bidirektionale Echtzeitkommunikation zwischen einem Client und einem Server ermöglicht. Um jedoch eine sichere Verbindung zu gewährleisten, insbesondere bei der Verwendung von wss://, ist die Konfiguration eines selbstsignierten Zertifikats häufig erforderlich, insbesondere in Entwicklungs- oder Testumgebungen. In diesem Artikel werden die Best Practices zum Konfigurieren selbstsignierter Zertifikate für WebSocket beschrieben.

Schritt 1: (Nur für nicht in eine Domäne eingebundene VDAs) Konfigurieren des DNS-Servers

  • Für Ubuntu- und Debian-VDAs:
  1. Ändern Sie die DNS-Einstellungen, indem Sie /etc/systemd/resolved.conf wie folgt bearbeiten:

      [Resolve]
      # Some examples of DNS servers which may be used for DNS= and FallbackDNS=:
      # Cloudflare: 1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com 2606:4700:4700::1111#cloudflare-dns.com 2606:4700:4700::1001#cloudflare-dns.com
      # Google:     8.8.8.8#dns.google 8.8.4.4#dns.google 2001:4860:4860::8888#dns.google 2001:4860:4860::8844#dns.google
      # Quad9:      9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net 2620:fe::fe#dns.quad9.net 2620:fe::9#dns.quad9.net
      DNS=<DNS IP address>
      #FallbackDNS=
      #Domains=
      #DNSSEC=no
      #DNSOverTLS=no
      #MulticastDNS=no
      #LLMNR=no
      #Cache=no-negative
      #CacheFromLocalhost=no
      #DNSStubListener=yes
      #DNSStubListenerExtra=
      #ReadEtcHosts=yes
      #ResolveUnicastSingleLabel=no
    <!--NeedCopy-->
    
  2. Starten Sie den systemd-resolved-Dienst neu.

      sudo service systemd-resolved restart
    <!--NeedCopy-->
    

    Weitere Informationen finden Sie unter https://notes.enovision.net/linux/changing-dns-with-resolve.

  • Für RHEL, Rocky Linux und SUSE VDAs:
  1. Führen Sie den folgenden nmcli-Befehl aus, um eine Liste der Verbindungsnamen zu erhalten:

      sudo nmcli connection
    <!--NeedCopy-->
    
  2. Führen Sie einen weiteren nmcli-Befehl aus, um die DNS-IP-Adresse einzurichten:

      sudo nmcli con mod {connectionNameHere} ipv4.dns "<dns ip address>"
    <!--NeedCopy-->
    

    Sie können die DNS-IP-Adresse beispielsweise mit dem folgenden Befehl auf 192.168.2.254 festlegen:

      sudo nmcli con mod eth0 ipv4.dns "192.168.2.254"
    <!--NeedCopy-->
    
  3. Laden Sie die neuen DNS-Einstellungen erneut, indem Sie einen der folgenden Befehle ausführen:

      sudo systemctl restart NetworkManager.service
    <!--NeedCopy-->
    
      sudo nmcli connection reload
    <!--NeedCopy-->
    

    For more information, see https://www.cyberciti.biz/faq/change-dns-ip-address-rhel-redhat-linux/.

Schritt 2: Fordern Sie ein Zertifikat von einer Zertifizierungsstelle (CA) an

  1. Initiieren Sie eine Zertifikatsanforderung. Wenn Sie eine Zertifikatsanforderung initiieren, geben Sie den vollqualifizierten Domänennamen (FQDN) des Delivery Controllers ein.

    Zertifikatsanforderung initiieren

  2. Wählen Sie eine Bitlänge von 2048 oder höher, um eine hohe Sicherheit für Ihr Zertifikat zu gewährleisten.

    Wählen Sie eine Bitlänge

  3. Weisen Sie Ihrer Zertifikatsanforderungsdatei zur einfachen Identifizierung einen beschreibenden Namen zu.

    Benennen Sie die Zertifikatsanforderungsdatei

  4. Öffnen Sie die generierte Zertifikatsanforderungsdatei mit einem Texteditor wie Notepad und wählen Sie den gesamten Inhalt aus.

    Öffnen Sie die generierte Zertifikatsanforderungsdatei

  5. Melden Sie sich bei Ihrem Webzertifikatserver an und fordern Sie ein Zertifikat an.

    Melden Sie sich bei Ihrem Webzertifikatserver an

    Erweiterte Zertifikatsanforderung

  6. Fügen Sie den kopierten Inhalt der Anforderungsdatei in das entsprechende Feld auf dem Webserver ein und wählen Sie die Zertifikatsvorlage Webserver aus.

    Senden einer Zertifikatsanforderung

  7. Laden Sie das Zertifikat im Base64-codierten Format herunter.

    Laden Sie das Zertifikat herunter

  8. Schließen Sie die Zertifikatsanforderung ab. Mit dem Herunterladen ist der Zertifikatsanforderungsprozess abgeschlossen.

    Abschließen der Zertifikatsanforderung

Schritt 3: Binden des Delivery Controller FQDN-Zertifikats

  1. Exportieren Sie das FQDN-Zertifikat des Delivery Controllers als PFX-Datei.

    Exportieren des Delivery Controller-FQDN-Zertifikats

  2. Importieren Sie das exportierte PFX-Zertifikat in die Internetinformationsdienste (IIS) Ihres Delivery Controller-Servers.

    Importieren des exportierten PFX-Zertifikats

  3. Binden Sie das importierte Zertifikat an Ihre Standardwebsite innerhalb von IIS.

    Binden des importierten Zertifikats

  4. Achten Sie während des Bindungsvorgangs darauf, das spezifische Zertifikat auszuwählen, das Sie importiert haben.

    Auswählen des importierten Zertifikats während der Bindung

Schritt 4: Speichern und Aktualisieren des CA-Zertifikats auf dem Linux VDA

  1. Laden Sie das CA-Zertifikat herunter. Beispiel:

    Herunterladen eines CA-Zertifikats

  2. Platzieren und aktualisieren Sie das CA-Zertifikat.

    • RHEL und Rocky Linux:

      Verwenden Sie den Befehl Trust Anchor, um das CA-Zertifikat hinzuzufügen. Stellen Sie sicher, dass keine Zertifikate manuell im Verzeichnis /etc/pki/ca-trust/source/anchors abgelegt werden. Wenn Fehler im Zusammenhang mit schreibgeschützten Feldern auftreten, entfernen Sie alle in diesem Verzeichnis vorhandenen Zertifikate.

    • SUSE, Ubuntu und Debian:

      Platzieren Sie das Stammzertifizierungsstellenzertifikat im Verzeichnis /usr/local/share/ca-certificates. Wenn das Zertifikat nicht die Erweiterung .crt hat, benennen Sie es entsprechend um. Führen Sie dann den Befehl update-ca-certificate aus.

Selbstsignierte Zertifikate für WebSocket konfigurieren