Windows 7 OneDrive Fehler 0x8004de40 beim Anmelden

Es ist selten geworden, aber ab und zu taucht noch irgendwo ein „superwichtiger“ alter Windows 7 Client auf. Windows 7 mag nicht immer freiwillig TLS 1.2 sprechen und hat eine WinHTTP Standartkonfiguration, die keine „modern services“ zulässt. Daran scheitern OneDrive, Outlook und andere Microsoft 365 Services und auch private Live-Knto („Microsoft-Konto“) Anmeldungen. Der Fehler 0x8004de40 ist aber immer der selbe und meint „Crypto mit der Cloud schlägt fehl“.

Lösung

Unter Windows 7/8, Server 2008R2/2012/R2 hilft folgendes:

Spätestens jetzt sollte OneDrive wieder fehlerfrei laufen. Wenn das nicht der Fall sein sollte ist es mit an Sicherheit grenzender Warscheinlichkeit eine Drittsoftware (Antivirus, personal Firewall, Security-Software …) oder eine Middlebox (Firewall, SSL-DPI, Security-Kram) vor dem Internet.

Zertifikate im Windows Zertifikatsspeicher umbenennen

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:

Get-ChildItem -path cert:\LocalMachine\my | Select Subject,Thumbprint,Friendlyname

2. Thumbprint von oben kopieren und den FriendlyName davon direkt ändern:

(Get-ChildItem -Path Cert:\LocalMachine\My\<THUMBPRINT>).FriendlyName = ‘Neuer Name’

Schritt für Schritt: Windows Server 2019 (IIS 10) als Reverse Proxy mit SSL-Offloading installieren

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“

Oder (als Minimalinstallation) an der PowerShell:

Install-WindowsFeature -name Web-Server –IncludeManagementTools

IIS ARR 3.0 (Application Request Routing) installieren

ARR 3.0 (mit URLRewrite) herunterladen und installieren: https://www.iis.net/downloads/microsoft/application-request-routing

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.

„Internetinformationsdienste (IIS)-Manager“ (IIS-Konsole) öffnen > Servername > Sites > Website hinzufügen

  • Sitename: <www.example.com> (Anzeigename)
  • 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.

„Internetinformationsdienste (IIS)-Manager“ (IIS-Konsole) öffnen > Servername > Sites > <www.example.com> > „URL Rewrite“ > Regeln hinzufügen > Leere Regel

  • Name: HTTPS-Redirect
  • Übereinstimmung mit URL
    • Angeforderte URL: „Entspricht dem Muster“
    • Unter verwendung von: „Reguläre Ausdrücke“
    • Muster: (.*)
    • Groß-/Kleinschreibung ignorieren
  • Bedingungen > Hinzufügen
    • Bedingungseingabe: {HTTPS}
    • Überprüfen, ob die Eingabezeichenfolge: „Entspricht dem Muster“
    • Muster: ^OFF$
    • Groß-/Kleinschreibung ignorieren
  • Aktionen
    • Aktionstyp: Umleiten
    • Aktionseigenschaften > „URL Umleiten“: https://{HTTP_HOST}/{REQUEST_URI}
    • Abfragezeichenfolge anhängen
    • Umleitungstyp: Dauerhaft
    • … ✔ Übernehmen

Windows Server 2016/2019 Eval auf Vollversion Upgrade mit GLVK Keys

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.“).

Windows Server 2016 Standard

dism /online /set-edition:ServerStandard /productkey:WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY /accepteula

Windows Server 2016 Datacenter

DISM /online /Set-Edition:ServerDatacenter /ProductKey:CB7KF-BWN84-R7R2Y-793K2-8XDDG /AcceptEula

Windows Server 2019 Standard

dism /online /set-edition:ServerStandard /productkey:N69G4-B89J2-4G8F4-WWYCC-J464C /accepteula

Windows Server 2019 Datacenter

dism /online /set-edition:ServerDatacenter /productkey:WMDGN-G9PQG-XVVXX-R3X43-63DFG /accepteula

PowerShell Ordnergröße anzeigen (Ausgabe ähnlich ‚du‘ unter Linux)

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:

PS C:\> Install-Module PSFolderSize

… vereinfacht sich das zu einen einzelnen Aufruf:

PS C:\> Install-Module PSFolderSize

Vielen Dank gngrninja 👍