Lizenz

Das Produkt wird mit einer RSA-signierten Lizenzdatei (license.lic) ausgeliefert. Der Hersteller hält den privaten Schlüssel; die Anwendung enthält nur den öffentlichen Schlüssel und prüft die Signatur bei jedem Start.

Wie die Lizenzierung funktioniert

  • appsettings.json:Licensing:PublicKeyBase64 — der öffentliche RSA-2048-Schlüssel des Herstellers. Wird mit der Anwendung ausgeliefert. Ändern Sie ihn nicht, außer der Hersteller gibt eine neue Schlüsselgeneration heraus.
  • appsettings.json:Licensing:LicenseFilePath — Pfad zur Lizenzdatei. Standard ist license.lic neben der Anwendungsdatei.
  • Der Lizenzumschlag ist ein kleines JSON-Dokument mit Kundenname, Edition, Ablaufdatum und einer Base64-RSA-Signatur. Die Anwendung prüft die Signatur bei jedem Start erneut und warnt bzw. sperrt Änderungen, wenn die Prüfung fehlschlägt oder die Lizenz abgelaufen ist.

Lizenz installieren

  1. Sie erhalten license.lic vom Hersteller.
  2. Legen Sie die Datei neben die Anwendungsdatei (Windows: C:\Apps\SqlServerHealthMonitor\license.lic; Linux: /opt/sshm/license.lic).
  3. Anwendung neu starten.
  4. Startprotokoll beobachten — dort sollte stehen:
    License: VALID for Acme Corp (edition Standard, expires 2027-06-30, 392 days remaining).
    
  5. Unter /Settings/License dieselben Angaben in der Oberfläche prüfen.

Steht im Protokoll dagegen:

License: Invalid — signature mismatch (changes restricted until installed via /settings/license)

…dann ist entweder die Datei bei der Übertragung beschädigt worden, oder der öffentliche Schlüssel in appsettings.json passt nicht zum privaten Schlüssel, mit dem die Datei signiert wurde. Laden Sie die Lizenz erneut herunter; hilft das nicht, muss der Hersteller den öffentlichen Schlüssel vermutlich neu ausstellen.

Erneuern und wechseln

Eine erneuerte Lizenz ist schlicht eine neue license.lic mit späterem ExpiresAt. Datei austauschen und neu starten — eine neue Programmversion ist dafür nicht nötig.

Sie können eine Erneuerung auch über die Oberfläche einspielen: /Settings/License → neue Datei hochladen. Die Änderung greift sofort, ein Neustart ist nicht erforderlich.

Neue Lizenz erzeugen (Herstellerseite)

Nur für den Hersteller — auf Betreiberseite lautet die Regel „nicht anfassen“:

# Schlüsselpaar erzeugen (einmalig; der Hersteller behält die private Hälfte FÜR IMMER).
# Schreibt license-private-key.xml in das aktuelle Verzeichnis und gibt den öffentlichen Schlüssel aus.
dotnet run --project tools/LicenseGenerator -- genkey

# Eine Lizenz für einen Kunden signieren. Positionsargumente:
#   sign <private-key.xml> <customer> <expires-yyyy-mm-dd> [edition] [maxServers]
#   maxServers: Obergrenze überwachter Server; 0 oder weggelassen = unbegrenzt.
dotnet run --project tools/LicenseGenerator -- sign \
    license-private-key.xml "Acme Corp" 2027-06-30 Standard 0

# Serverbegrenzte Lizenz (z. B. eine 3-Server-Demo; das Ablaufdatum liegt weit in der
# Zukunft, sodass allein die Serverzahl bindet):
dotnet run --project tools/LicenseGenerator -- sign \
    license-private-key.xml "Acme Corp (Demo)" 2099-12-31 Demo 3

# Die signierte Datei wird als license.lic im aktuellen Verzeichnis abgelegt. Sie geht an den
# Kunden; der ausgegebene öffentliche Schlüssel kommt nach appsettings.json:Licensing:PublicKeyBase64.

Verliert der Hersteller den privaten Schlüssel, bleiben alle bereits ausgestellten Lizenzen gültig (bestehende Installationen prüfen weiterhin erfolgreich), aber es lassen sich keine neuen Lizenzen mehr signieren, solange nicht ein neues Schlüsselpaar erzeugt und eine aktualisierte Version mit dem neuen öffentlichen Schlüssel ausgeliefert wird. Für den Vertrieb bedeutet das einen Ausfall bis zur nächsten Auslieferung.

Was bei ungültiger Lizenz passiert

Das Dashboard lädt weiterhin — die Überwachung abzuschalten wäre schäbig —, aber schreibende Aktionen sind gesperrt, bis eine gültige Lizenz installiert ist:

  • Server anlegen, bearbeiten und löschen
  • Alarmregeln bearbeiten
  • Benachrichtigungseinstellungen bearbeiten
  • Benutzer- und Rollenverwaltung

Auf jeder Seite erscheint ein roter Hinweisbalken mit einem Link auf /Settings/License.