Installation (Windows)

Systemvoraussetzungen

Im Prinzip sollte jedes Windows ab Vista ausreichen (XP sollte auch funktionieren, wird aber nicht empfohlen). Für den Betrieb muss jedoch das .NET-Framework mindestens in der Version 4.0 („Full“, nicht die abgespeckte „Client-Profile“) auf dem Rechner installiert sein. Falls nicht lässt sich dies bei Microsoft downloaden.

Installation von LogoControl

Ladet das Installationspaket (zip) für Windows unter Download herunter und entpacket es in einen Ordner eurer Wahl.

Registrierung der Ports für HTTP(S)

Unter Windows hat dank UAC ein normaler Prozess leider nicht die Berechtigung einen beliebigen Port für HTTP-Verkehr zu öffnen. Dazu muss der Prozess entweder immer mit Admin-Rechten gestartet werden oder der Benutzer generell mit dem Recht für diesen Port ausgestattet werden. Wenn ihr also den Prozess nicht immer mit Admin-Rechten starten wollt müsst ihr folgendes auf der Kommandozeile (mit Admin-Rechten) tun:

netsh http add urlacl url=https://+:8080/ user=domain\user
netsh http add urlacl url=http://+:8088/ user=domain\use

Dabei muss bei „user=“ natürlich euer Domain- und Username stehen. Wenn ihr außerdem von der Standardeinstellung abweichende Ports für HTTP und HTTPS in der config.xml eingetragen habt, müssen diese natürlich anstatt 8080 und 8088 im Kommando verwendet werden.

Nachdem die Befehle erfolgreich ausgeführt wurden, kann LogoControl künftig die Ports auch ohne Admin-Rechte öffnen.

Start auf Kommandozeile

Nun steht dem Start von LogoControl nichts mehr im Wege. Startet dazu die Kommandozeilenapplikation „LogoControl.exe“ im Installationsverzeichnis. Wenn ihr „Service is running…“ auf der Konsole seht, hat alles geklappt. Nun könnt ihr im Browser die URL http://localhost:8088/ aufrufen um die Statusseite von LogoControl anzeigen zu lassen. Dort ist auch der Punkt Konfiguration zu sehen unter der ihr die config.xml bearbeiten könnt, denn nun ist der Zeitpunkt gekommen LogoControl an eure Infrastruktur (LOGO-IP-Adresse, Devices… siehe Kapitel Konfiguration) anzupassen.

Start per LogoControlTrayIcon

Alternativ zum Start über die Kommandozeile liegt der Windows-Version von LogoControl auch ein kleines Tool namens „LogoControlTrayIcon.exe“ bei. Dieses Tool macht nichts anderes als wenn ihr LogoControl von der Kommandozeile starten würdet, allerdings erfolgt der Start im Hintergrund (also ohne sichtbares Kommandozeilen-Fenster) und im Info-Bereich neben der Windows-Uhr wird anschließend ein kleines TrayIcon eingeblendet. Ein Klick mit der linken Maustaste auf dieses TrayIcon öffnet die WebUI im Browser, per Klick mit rechts lässt sich LogoControl wieder beenden.

Zertifikat für SSL-Verbindung (HTTPS)

Die folgenen Schritte sind nur nötig wenn der REST/JSON-Webservice bzw. die Web-Oberfläche von außen per HTTPS erreichbar sein sollen. Denn dafür muss im Zertifikatsspeicher ein Zertifikat importiert werden, mit dem sich der Webserver später gegenüber Clients ausweist. Wenn ihr jedoch kein Zertifikat einer CA (Certification Authority) für teures Geld kaufen wollt bleibt nur ein selbst signiertes Zertifikat zu erstellen, was für euch als alleinige Nutzer des Webservices auch vollkommen legitim ist. Da dieses Prozedere allerdings nicht ganz einfach ist liefere ich hier für schnelle Erfolgserlebnisse bereits ein Zertifikat „localhost“ mit. Aus Sicherheitsgründen empfehle ich jedoch euer eigenes Zertifikat zu erstellen (Hintergrund dazu im „Sicherheitshinweis“, wie es gemacht wird unter „Eigenes Zertifikat erstellen“).

Sicherheitshinweis

Ich verwende hier ein selbst signiertes Root-Zertifikat dessen privaten Schlüssel ich kenne. Dieses muss in euren Zertifikatsspeicher importiert und als „vertrauenswürdig“ klassifiziert werden. Wäre ich ein böser Mensch könnte ich auf Basis dieses Root-Zertifikates beliebige (unter-)Zertifikate ausstellen und damit beliebige (Pishing-)Seiten ins Netz-Stellen. Diese Seiten würden dann von eurem Browser (zumindest vom IE) als völlig gültig angezeigt werden, schließlich habt ihr mein Root-Zertifikat als vertrauenswürdig eingestuft.

Außerdem sollte ein Zertifikat immer zu der URL passen über welche die Seite erreichbar ist. Das oben genannte logocontrol-Zertifikat wurde z.B. auf den Hostnamen „localhost“ erstellt. Wenn ihr nun https://localhost:8080/… im Browser eingebt ist alles OK. Sobald ihr über den Rechnernamen oder eine Dyndns-Adresse darauf zugreift meckert der Browser auch schon, dass das Zertifikat nicht mehr zum Hostnamen passt. Natürlich kann man auch diese Warnung dauerhaft abnicken und das localhost-Zertifikat somit auch für „draußen“ nutzen. Prinzipiell ist das mitgelieferte „localhost“-Zertifikat allerdings eine potentielle Schwachstelle für Man-In-The-Middle Angriffe. Wen dies aber trotzdem nicht stört und mir vertraut kann auch gerne das mitgelieferte Zertifikat nutzen, aber ich wollte euch nur gewarnt haben!

Eigenes Zertifikat erstellen

Zuerst muss ein selbst signiertes Root-Zertifikat für die eigene CA erstellt werden. Dazu benötigt ihr das Kommandozeilen-Tool „makecert.exe“. Das ist beispielsweise bei VisualStudio mit dabei oder auch im kostenlosen Windows SDK enthalten. Die Beschreibung aller Parameter von „makecert.exe“ findet man hier. Damit ihr nicht erst den Pfad zum Tool suchen müsst verwendet am besten die VisualStudio oder Windows SDK Eingabeaufforderung. Das Root-Zertifikat wird dann folgendermaßen erstellt:

makecert -r -pe -n "CN=RootSelfSigned" -ss CA -cy authority -sv RootSelfSigned.pvk RootSelfSigned.cer

Bei der anschließenden Passwort-Abfrage wählt ihr „None“. Nun solltet ihr 2 Dateien haben. In der *.pvk ist der private Schlüssel für euer Root-Zertifikat enthalten, in der *.cer das eigentliche Zertifikat.

Nun erstellt ihr das Host-Zertifikat für den Rechner selbst. Dieses wird mit dem Schlüssel des Root-Zertifikats signiert):

makecert -iv RootSelfSigned.pvk -n "CN=mydomain.de" -ic RootSelfSigned.cer -sr localmachine -ss my -sky exchange -pe -sv logocontrol.pvk logocontrol.cer

Bei CN= tragt anstatt „mydomain.de“ den Domainnamen so ein wie euer Rechner von außen erreichbar sein wird (also die selbe Adresse wie ihr sie später im Browser eingeben werdet (z.B. meinelogo.dyndns.org). Passwort brauchen wir wieder keins. Anschließend habt ihr wieder 2 Dateien: logocontrol.cer und logocontrol.pvk.

Die *.pvk muss nun noch in eine *.pfx konvertiert werden um sie später in den Zertifikatstore importieren zu können. Das geht mit:

pvk2pfx -pvk logocontrol.pvk -spc logocontrol.cer -pfx logocontrol.pfx

Im Prinzip sind nun 2 Dateien wichtig:

  • RootSelfSigned.cer
  • logocontrol.pfx

Wurden diese erfolgreich erstellt, könnt ihr mit dem Zertifikatsimport fortfahren wie mit den mitgelieferten Zertifikaten.

Im Installationspaket sind 2 Zertifikatsdateien enthalten, die nun importiert werden müssen:

  • RootSelfSigned.cer
  • localhost.pfx

Folgende Schritte müssen dazu durchgeführt werden:

  • Start -> Ausführen… -> MMC.exe
  • Datei -> Snap-In hinzufügen
  • Snap-In „Zertifikate“ rechts in die Liste hinzufügen (bei Rückfrage „Computerkonto“, „Lokaler Computer“ auswählen)
1. Root-Zertifikat (RootSelfSigned.cer)
  • Rechtsklick „Vertrauenswürdige Stammzertifizierungsstellen“ -> Alle Aufgaben -> importieren…
  • „RootSelfSigned.cer“ auswählen
  • Zertifikatsspeicher „Vertrauenswürdige Stammzertifizierungsstellen“ auswählen
  • Fertig stellen
2. Host-Zertifikat (localhost.pfx oder bei eigenem Zertifikat:  logocontrol.pfx)
  • Rechtsklick auf „Eigene Zertifikate“ -> Alle Aufgaben -> importieren…
  • Im „Datei öffnen…“ Dialog den Dateifilter von „X.509-Zertifikat (*.cer)“ auf „Privater Informationsaustausch (*.pfx)“ ändern
  • „localhost.pfx“ auswählen (bzw. eure „logocontrol.pfx“ falls ihr ein eigenes Zertifikat erstellt habt)
  • Das Feld Passwort leer lassen
  • Zertifikatsspeicher „Eigene Zertifikate“ auswählen
  • Fertig stellen
3. Zertifikat an HTTP-Port 8080 binden

Damit das Zertifikat bei Anfragen an Port 8080 ausgeliefert werden kann muss es an diesem Port „gebunden“ werden. Wenn ihr das mitgelieferte localhost-Zertifikat verwendet öffnet dazu eine Kommandozeile (mit Admin-Rechten!) und führt folgendes aus:

netsh http add sslcert ipport=0.0.0.0:8080 certhash=e2a7c1c08993097c8049c39dbf7bad8f0f301ad0 appid={00112233-4455-6677-8899-AABBCCDDEEFF}
Wenn ihr euer eigenes Zertifikat verwendet habt...
…dann muss der certhash durch den Fingerabdruck eures logocontrol-Zertifikats ersetzt werden. Diesen findet ihr wenn ihr die logocontrol.cer doppelklickt im Tab „Details“ unter „Fingerabdruck“, allerdings müssen hier noch die Leerzeichen entfernt werden.