Zurück zu FSRdp

PFX-Zertifikat für FsRdpServer

Anleitung zur Beschaffung, Installation und Erneuerung eines TLS-Zertifikats für Windows und Linux Server.

1. Was ist ein PFX-Zertifikat?

cert.pfx ist ein passwortgeschütztes PKCS#12-Paket. Es enthält:

  • Das TLS-Serverzertifikat für Ihren Servernamen (z. B. server.ihrefirma.de)
  • Den privaten Schlüssel zum Zertifikat
  • Optional: Zwischenzertifikate der Zertifizierungsstelle

FsRdpServer nutzt die PFX-Datei, um alle Verbindungen zu Clients zu verschlüsseln – genau wie ein Webserver sein HTTPS-Zertifikat. Ohne gültiges Zertifikat können Clients sich nicht verbinden.

2. Zertifikat beschaffen

Option A: Wildcard-Zertifikat (empfohlen für mehrere Server)

Beispiel: *.ihrefirma.de

  • Deckt alle Subdomains ab: server.ihrefirma.de, support.ihrefirma.de, usw.
  • Bei der Domain-Registrierungsstelle beantragen (z. B. HostEurope).
  • Meist kostenpflichtig (10–50 EUR/Jahr je nach Anbieter).
  • Vorteil: Können Sie für mehrere FsRdpServer verwenden, solange diese unter Ihrer Domain liegen.
  • Laufzeit: Typisch 1 Jahr; vor Ablauf erneuern.

Option B: Spezifisches Zertifikat (für einen einzelnen Server)

Beispiel: server.ihrefirma.de (nur diese Subdomain)

  • Günstiger als Wildcard (5–30 EUR/Jahr).
  • Bei der Domain-Registrierungsstelle beantragen.
  • Vorteil: Kostet weniger, wenn Sie nur einen Server haben.
  • Nachteil: Für jeden zusätzlichen Server ein eigenes Zertifikat nötig.
  • Laufzeit: Typisch 1 Jahr; vor Ablauf erneuern.

Option C: Let's Encrypt (kostenlos, automatisierbar)

Beispiel: server.ihrefirma.de

  • Kostenlose Zertifikate, Laufzeit 90 Tage (kurz, aber automatisch erneuerbar).
  • Voraussetzung: Ihr Servername muss öffentlich per DNS auflösbar sein.
  • Mit certbot einrichten (Linux; Windows erfordert zusätzliche Tools).
  • Vorteil: Kostenfrei, automatische Erneuerung möglich.
  • Nachteil: Erfordert öffentliche Internetanbindung und DNS-Verwaltung.

Option D: Interne Firmen-CA (nur für private Netzwerke)

Wenn FsRdpServer nur intern erreichbar ist und Ihre Firma eine eigene Zertifizierungsstelle betreibt, können Sie dort ein Zertifikat beantragen.

  • Wichtig: Jeder Client muss der CA ausdrücklich vertrauen.
  • Laufzeit: Je nach Policy Ihrer CA, oft 1–3 Jahre.

3. Zertifikat als PFX exportieren

Szenario A: Von HostEurope beziehen

  1. Melden Sie sich im HostEurope-Kundenportal an.
  2. Navigieren Sie zu Ihrer Domain und der Zertifikatsverwaltung.
  3. Laden Sie das Zertifikat herunter. HostEurope bietet meist mehrere Formate an.
  4. Wählen Sie das Format PKCS#12 (.pfx) mit Passwort.
  5. Speichern Sie die cert.pfx sicher ab (nicht per E-Mail verschicken!).

Szenario B: Von Let's Encrypt mit certbot (Linux)

# Zertifikat mit certbot beschaffen und automatisch erneuern
sudo certbot certonly --standalone -d server.ihrefirma.de

# Dann zu PFX konvertieren:
sudo openssl pkcs12 -export -out /tmp/cert.pfx \
  -inkey /etc/letsencrypt/live/server.ihrefirma.de/privkey.pem \
  -in /etc/letsencrypt/live/server.ihrefirma.de/fullchain.pem \
  -password pass:IhrPasswort

Szenario C: Von anderer CA (manuell mit OpenSSL)

Falls Sie separate PEM-Dateien haben (z. B. cert.pem, privkey.pem, chain.pem):

openssl pkcs12 -export -out cert.pfx \
  -inkey privkey.pem \
  -in cert.pem \
  -certfile chain.pem \
  -password pass:IhrPasswort

4. PFX zum ersten Mal installieren

Windows

1

Legen Sie cert.pfx bereit und notieren Sie sich das Passwort.

2

Führen Sie Setup_FSRdpServer.exe als Administrator aus. Das Setup fragt nach der PFX-Datei und dem Passwort.

3

Das Setup speichert cert.pfx automatisch in C:\ProgramData\FsRdpServer\ und das Passwort im Klartext in appsettings.json.

Geschützt wird das Passwort nicht durch Verschlüsselung, sondern durch die Zugriffsrechte des Ordners: Das Setup beschränkt C:\ProgramData\FsRdpServer auf SYSTEM und die lokalen Administratoren. Geben Sie normalen Benutzern deshalb niemals Zugriff auf diesen Ordner, und nehmen Sie ihn nicht in eine Sicherung auf, die breiter lesbar ist als der Ordner selbst.

Detaillierte Anleitung: Installationsanleitung, Abschnitt 3

Linux

1

Kopieren Sie cert.pfx in das Datenverzeichnis:

sudo install -o fsrdp-server -g fsrdp-server -m 0640 \
  cert.pfx /opt/fsrdp-server/data/cert.pfx
2

Speichern Sie das Passwort in der root-geschützten Umgebungsdatei:

sudoedit /etc/fsrdp-server/fsrdp-server.env

Tragen Sie ein:

FSRDP_CERT_PASSWORD=IhrPasswort

Speichern Sie die Datei mit Schutzrechten:

sudo chmod 0600 /etc/fsrdp-server/fsrdp-server.env
3

Starten Sie den Dienst oder nehmen Sie Änderungen vor:

sudo systemctl restart fsrdp-server.service

Detaillierte Anleitung: Installationsanleitung, Abschnitt 4

5. Zertifikat erneuern

Gültigkeitsdatum prüfen

Windows:

# Öffnen Sie die MMC (Microsoft Management Console):
mmc

# Und navigieren Sie zu:
# Datei > Snap-Ins hinzufügen/entfernen > Zertifikate > Eigene Zertifikate >
# Persönlich > Zertifikate

# Dort können Sie das Gültigkeitsdatum der installierten cert.pfx sehen.

Linux:

openssl pkcs12 -in /opt/fsrdp-server/data/cert.pfx -password pass:IhrPasswort \
  | openssl x509 -noout -dates

Szenario A: HostEurope Zertifikat erneuern

  1. Etwa 4–6 Wochen vor Ablauf erhalten Sie von HostEurope eine Erinnerung.
  2. Beantragen Sie die Erneuerung im HostEurope-Portal.
  3. Laden Sie das erneuerte Zertifikat als PKCS#12 (.pfx) herunter.
  4. Folgen Sie „Zertifikat ersetzen (Windows/Linux)" unten.

Szenario B: Let's Encrypt mit certbot (Linux, automatisch)

Let's Encrypt-Zertifikate sind nur 90 Tage gültig, aber certbot erneuert automatisch. Um das zu überprüfen:

# Manuelle Erneuerung testen (ohne echten Abruf):
sudo certbot renew --dry-run

# Automatische Erneuerung überprüfen (läuft als Systemd-Timer):
sudo systemctl list-timers | grep -i certbot

Wenn certbot automatisch erneuert hat, müssen Sie danach die PFX-Datei neu exportieren und in FsRdpServer installieren:

# Neue PFX erzeugen:
sudo openssl pkcs12 -export -out /tmp/cert.pfx \
  -inkey /etc/letsencrypt/live/server.ihrefirma.de/privkey.pem \
  -in /etc/letsencrypt/live/server.ihrefirma.de/fullchain.pem \
  -password pass:IhrPasswort

# Alte PFX durch neue ersetzen:
sudo install -o fsrdp-server -g fsrdp-server -m 0640 \
  /tmp/cert.pfx /opt/fsrdp-server/data/cert.pfx

# Dienst neu starten:
sudo systemctl restart fsrdp-server.service

Zertifikat ersetzen (Windows)

  1. Besorgen Sie das erneuerte Zertifikat als cert.pfx (siehe Abschnitte 2–3).
  2. Stoppen Sie den FsRdpServer-Dienst:
    Stop-Service -Name FsRdpServer
  3. Ersetzen Sie die alte PFX-Datei:
    Copy-Item "C:\Pfad\zu\cert.pfx" `
      "C:\ProgramData\FsRdpServer\cert.pfx" -Force
  4. Wenn sich das Passwort geändert hat, bearbeiten Sie die appsettings.json:
    notepad "C:\ProgramData\FsRdpServer\appsettings.json"
    und ändern Sie:
    "CertificatePassword": "AlterPasswort"
    zu:
    "CertificatePassword": "NeuesPasswort"
  5. Starten Sie den Dienst neu und validieren Sie:
    Start-Service -Name FsRdpServer
    
    # Validierung:
    & "$env:ProgramFiles\FsRdpServer\FsRdpServer.exe" `
      --validate-installation `
      --validation-data-dir "$env:ProgramData\FsRdpServer"

Zertifikat ersetzen (Linux)

  1. Besorgen Sie das erneuerte Zertifikat als cert.pfx.
  2. Stoppen Sie den Dienst:
    sudo systemctl stop fsrdp-server.service
  3. Ersetzen Sie die alte PFX-Datei:
    sudo install -o fsrdp-server -g fsrdp-server -m 0640 \
      cert.pfx /opt/fsrdp-server/data/cert.pfx
  4. Wenn sich das Passwort geändert hat, bearbeiten Sie die Umgebungsdatei:
    sudoedit /etc/fsrdp-server/fsrdp-server.env
    und aktualisieren Sie:
    FSRDP_CERT_PASSWORD=NeuesPasswort
  5. Validieren Sie die Installation:
    sudo systemd-run \
      --quiet --wait --pipe --collect \
      --property=User=fsrdp-server \
      --property=Group=fsrdp-server \
      --property=EnvironmentFile=/etc/fsrdp-server/fsrdp-server.env \
      --property=Environment=FSRDP_DATA_DIR=/opt/fsrdp-server/data \
      /opt/fsrdp-server/FsRdpServer --validate-installation
  6. Bei erfolgreicher Validierung Dienst starten:
    sudo systemctl start fsrdp-server.service

6. Automatische Erneuerung einrichten (Linux + Let's Encrypt)

Wenn Sie Let's Encrypt mit certbot nutzen und möchten, dass die PFX-Datei automatisch erneuert wird:

Schritt 1: Hook-Skript erstellen

sudo nano /etc/letsencrypt/renewal-hooks/post/fsrdp-renew.sh

Tragen Sie folgenden Inhalt ein:

#!/bin/bash
# Erneuertes Zertifikat zu PFX konvertieren
openssl pkcs12 -export -out /tmp/cert.pfx \
  -inkey /etc/letsencrypt/live/server.ihrefirma.de/privkey.pem \
  -in /etc/letsencrypt/live/server.ihrefirma.de/fullchain.pem \
  -password pass:IhrPasswort

# PFX zu FsRdpServer kopieren
install -o fsrdp-server -g fsrdp-server -m 0640 \
  /tmp/cert.pfx /opt/fsrdp-server/data/cert.pfx

# Dienst neu starten
systemctl restart fsrdp-server.service

# Temporary file löschen
rm /tmp/cert.pfx

Schritt 2: Skript ausführbar machen

sudo chmod +x /etc/letsencrypt/renewal-hooks/post/fsrdp-renew.sh

Schritt 3: Testen

sudo certbot renew --dry-run

Danach werden PFX-Datei und Dienst automatisch erneuert, wenn certbot ein neues Zertifikat abruft (typisch nach 90 Tagen).

7. Häufige Probleme

„Certificate has expired" oder Clients können sich nicht verbinden

  • Überprüfen Sie das Gültigkeitsdatum der PFX-Datei (siehe Abschnitt 5).
  • Falls abgelaufen: erneuern Sie das Zertifikat sofort (Abschnitt 5).

„DNS name mismatch" oder ähnliche Fehler beim Setup

  • Der DNS Subject Alternative Name (SAN) im Zertifikat stimmt nicht mit dem Servernamen überein.
  • Überprüfen Sie, für welchen Namen das Zertifikat ausgestellt wurde.
  • Besorgen Sie ein neues Zertifikat für den korrekten Namen.

„PFX password incorrect" oder „Falsche PFX-Datei"

  • Windows: Überprüfen Sie in appsettings.json, ob das Passwort korrekt ist.
  • Linux: Überprüfen Sie in /etc/fsrdp-server/fsrdp-server.env das Passwort.
  • Beachten Sie Leerzeichen und Sonderzeichen im Passwort.

„Invalid certificate chain" oder Clients vertrauen nicht

  • Stellen Sie sicher, dass die PFX-Datei alle erforderlichen Zwischenzertifikate enthält.
  • Bei Let's Encrypt: nutzen Sie fullchain.pem, nicht cert.pem.
  • Clients müssen der Zertifizierungsstelle vertrauen (bei öffentlichen CAs normalerweise der Fall).

Fragen zum PFX-Zertifikat oder Erneuerung? Ich helfe gerne bei Problemen oder Unklarheiten.

Robert Fischbacher

Direkt Kontakt aufnehmen