Bis vor kurzen wusste ich nicht: Man kann den Anzeigename eines Zertifikats im Zertifikatsspeicher ändern. Die ‚certmgr‘ Konsole lässt das zwar nicht zu, aber an der PowerShell ist das durchaus möglich.
Das XBL Zertifikat aus diesem Beispiel soll umbenannt werden.
1. Den Fingerprint (Thumbprint) des Zertifikates ermitteln:
Windows Server mit dem IIS ist ein ausgezeichneter reverse Proxy und eigentlich auch schnell eingerichtet.
Diese Anleitung geht davon aus das …
Es einen installierten Windows Server 2019 gibt
Ein passendes SSL-Zertifikat mit korrektem CN existiert
Wenn der Webserver im Internet erreichbar ist, tut es natürlich auch Let’s Encrypt
Ein Webserver der über diesen reverse Proxy erreichbar sein soll existiert und auch wirklich von diesem Server erreichbar ist
IIS mit passenden Features installieren
Server Manager > Rollen und Features hinzufügen > „Rollenbasierte oder featurebasierte Installation“ > Server auswählen > „Webserver (IIS)“ und die gewünschten Funktionen hinzufügen. Obligatorisch ist die „IIS-Verwaltungskonsole“
Zertifikat im Windows Zertifikatsspeicher installieren
Doppeklick auf das *.pfx > Lokaler Computer > Weiter > Speicher automatisch auswählen / Kennwort eingeben > Weiter > Fertigstellen
IIS Proxy Dienste einschalten
„Internetinformationsdienste (IIS)-Manager“ (IIS-Konsole) öffnen > Links erster Punkt „Servername“ > Rechte Hälfte „Applicatin Request Routing Cache“ öffnen
In der Taskpane unter „Proxy“ > „Server Proxy Settings“ > Enable Proxy. Ganz unten sollte „Enable SSL Offloading“ eingeschaltet sein.
Tipp: Der X-Forwarded-For Header ist für viele Anwendungen (vor allem Java-Apps) wichtig. Der IIS verbietet im ARR standardmäßig aber alle Header, für die es keine Serverweite Erlaubnis gibt. Wie man eigene Header, zum Beispiel X-Forward-For, im IIS zulässt steht in diesem Artikel: https://www.ugg.li/iis-reverse-proyxy-http-header-setzen-zeigt-nur-fehler-500-seiten/ Wir raten dazu, den Header für Reverse Proxies zu erlauben.
IIS Site anlegen
Es ist zwar zwingend nötig eine neue Site anzulegen, wir raten aber als „best Practice“ dazu, für jede Bindung eine eigene Site mit eigener Konfiguration anzulegen. Die Default Site (ID #1) wird nämlich gerne von Drittsoftware verwendet oder verändert.
Physischer Pfad: <c:\inetpub\www.example.com> (Pfad zur Konfiguration, exklusiv für jede Site anlegen)
Typ: https
IP-Adresse: „Keine zugewiesen“
Hostname: <www.example.com> (URL, muss zum CN im Zertifikat passen)
IIS Site zum Reverse Proxy umstellen
„Internetinformationsdienste (IIS)-Manager“ (IIS-Konsole) öffnen > Servername > Sites > <www.example.com> > „URL Rewrite“ > Regeln hinzufügen > „Reverseproxy“ > Ziel eingeben (hier im Beispiel ein Webserver auf dem localhost auf Port 8080
Optional: HTTPS Redirect Regel erstellen
Um HTTP-Anfragen nun automatisch auf HTTPS weiterzuleiten (via HTTP 30x), kann man nun eine weitere Regel zur Site hinzufügen.
Da ist JEDESMAL anfange zu googeln wenn ich einen neuen Windows Server in den Produktivbetrieb nehmen muss, hier die aktuelle Liste der Upgrade-Keys. Ja, das ist legal, nur blöderweise etwas umständlich.
Dazu trägt man einfach einen GVLK (Generic Volume License Key) Key in die Ziel-Edition vonm DISM ein, lässt das Eval-Paket damit automatisch entfernen und hat schon einen „vollen“ Windows Server.
Dieser braucht natürlich immernoch einen korrekten Lizenzkey und eine Aktivierung, aber die Umstellung ist nur via GLKV möglich, sonst bekommt man den Fehler 0x8a010001 („Der angegebene Product Key konnte nicht überprüft werden.“).
Es ist überraschend umständlich, die Größe eines Ordners an der PowerShell herauszufinden. Man muss dazu GCI filtern, nur einen Ordner angeben (oder eine zsätzliche Schleife bauen), -recursive durch Unterordner laufen und erhält dann fiese Fehlermeldungen wenn man Symlinks oder NTFS-Streams verwendet.
Ich bin bei einer solchen Aufgabe über das PowerShell Modul PSFoldersize gestolpert. Nach der Installation des Moduls aus der PowerShell Gallery mit:
Manchmal muss der Admin genau ein einziges Objekt, oder nur wenige ganz bestimmte Objekte von der Synchronisation vom lokalen AD in das Microsoft 365 Azure AD ausschließen.
Das geht überraschend einfach, mann kann exclude-Regeln einfach im „Synchronization Rule Editor“ hinzufügen.
Schritt für Schritt Anleitung um ein Objekt nicht mehr zu synchroniseren
Zeitplan für die Synchronisation abschalten, damit keine automatischen Aufgaben die Änderungen durcheinander bringen:
Set-ADSyncScheduler -SyncCycleEnabled $False
Der Status des ADSyncSchedulers lässt sich jeder überprüfen mittels:
2. „Synchronization Rules Editor“ starten (als Administrator)
3. In der „View and manage …“ Liste die „Direction“ auf „Inbound“ stellen und eine freie Nummer unterhalb der bestehenden „Precedence“ Regeln finden (und merken). In der Regel ist das irgendetwas <100.
4. Oben rechts „Add New rule“
5. Den „Create inbound synchronization rule“ Assistenten nun ausfüllen:
Name: Ein beschreibender Name, z.B. „In from AD – Bernd auslassen“
Connected System: Der lokale AD Forest
Connected System Object Type: user
Metaverse Object Type: Person
Link Type: join
Precedence: Die gemerkte Nummer von oben (z.B. „90“)
„Tag“, „Enable Password Sync“ oder „Disabled“ nicht verändern
Next > …
6. „Add group“ > dann > „Add clause“
7. Als „Attribut“ ein zu filterned Attribut wählen, zum Beispiel den „name“ oder ein anderes Attribut. Bei größeren Mengen an Objekten nutzen wir hier gerne die „Extended Attributes“, die normalerweise solange ungenutzt und leer sind. Der Operator ist im Beispiel „equal“, der „Value“ der zu matchende Inhalt.
8. „Next >“, an den nun angezeigten „Add join Rules“ nichts ändern > „Next >“
9. Bei den „Add join rules“ eine Transformation hinzufügen: