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.
Die Lizenz kauft Support, keine Funktionen. Die Anwendung ist ohne Lizenz vollständig nutzbar — Server anlegen, Alarmregeln bearbeiten, Indexwartung ausführen, alles. Die Lizenz weist nach, wer einen Supportanspruch hat und wie lange dieser läuft. Die Software selbst bleibt dauerhaft: Endet der Supportzeitraum, hört nichts auf zu funktionieren.
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 istlicense.licneben der Anwendungsdatei.- Der Lizenzumschlag ist ein kleines JSON-Dokument mit Kundenname, Edition, Ablaufdatum des Supports und einer Base64-RSA-Signatur. Die Anwendung prüft die Signatur bei jedem Start erneut und meldet das Ergebnis — sie sperrt dabei nichts.
Lizenz installieren
- Sie erhalten
license.licvom Hersteller. - Legen Sie die Datei neben die Anwendungsdatei (Windows:
C:\Apps\SqlServerHealthMonitor\license.lic; Linux:/opt/sshm/license.lic). - Anwendung neu starten.
- Startprotokoll beobachten — dort sollte stehen:
License: support for Acme Corp (edition Standard) runs until 2027-06-30, 392 days remaining. - Unter
/Settings/Licensedieselben Angaben in der Oberfläche prüfen.
Steht im Protokoll dagegen:
License: Invalid — signature mismatch. Support status unknown; no features are restricted.
…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: steht im Umschlag und wird auf der Lizenzseite angezeigt, wird aber
# NICHT durchgesetzt — nichts im Produkt hängt davon ab. 0 oder weggelassen = ohne Angabe.
dotnet run --project tools/LicenseGenerator -- sign \
license-private-key.xml "Acme Corp" 2027-06-30 Standard 0
# Eine Lizenz mit Serverzahl (wird nur festgehalten, nichts setzt sie durch):
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 ohne Lizenz oder mit abgelaufener Lizenz passiert
Nichts hört auf zu funktionieren. Es gibt keinen Nur-Lese-Modus, keine Funktionssperre und keine Serverbegrenzung — jede Funktion steht zur Verfügung, ob eine Lizenz installiert ist oder nicht. Es ändert sich allein das, was die Anwendung über Ihren Supportanspruch sagen kann:
| Zustand | Was Sie sehen |
|---|---|
| Gültig | /Settings/License zeigt Kunde, Edition und verbleibende Supporttage. Kein Hinweisbalken. |
| Keine Lizenz | Gar nichts. Eine Installation ohne Lizenz ist ein normaler, vorgesehener Zustand. |
| Abgelaufen | Administratoren sehen einen Hinweis, dass der Support an diesem Datum endete und der Funktionsumfang unberührt bleibt. |
| Ungültig / manipuliert | Administratoren sehen einen Hinweis, dass die Datei nicht gelesen werden konnte und der Supportstatus daher unbekannt ist. |
Wer im Code nachsehen will: LicenseStatus in Services/LicenseService.cs trägt die Regel
als Kommentar und stellt bewusst kein Merkmal bereit, an dem eine Seite sperren könnte.