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 verschlüsselt in appsettings.json.

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