Nach einem Update meines WLAN-Controller bin ich über ein kleines Problem gestolpert. Der WLAN Controller wird mittels PRTG und eines PowerShell Scripts überwacht. Nach dem Update des Controllers liefert das Script nur noch die folgende Fehlermeldung:
Die Anfrage wurde abgebrochen: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden..
In diesem Fall handelt es sich um den Unifi Controller von Ubiquiti, allerdings ist das hier nur Nebensache. Ich hatte mir vor dem Update schon die Release Notes zum Update durchgelesen und schon Schwierigkeiten befürchtet. In den Release Notes stand folgender Satz:
- Remove TLSv1 from default SSL protocols for Java 7/8.
Ich hatte schon befürchtet, dass der PowerShell Sensor damit Schwierigkeiten bekommt, ein Test direkt auf der PowerShell bestätigt das Problem:
Obwohl .NET Framework und die PowerShell auf relativ aktuellem Release sind, kann keine Verbindung via HTTPs hergestellt werden. Scheinbar verwendet die PowerShell bzw. NET Framework immer noch gerne TLSv1, welches aber vom Controller nicht mehr unterstützt wird.
Damit PowerShell Scripte bevorzugt aktuelle Versionen des TLS Protokolls benutzen, kann dies zur Laufzeit des Scriptes angepasst werden. Die folgenden beiden Zeilen lassen nur noch TLSv1.1 und TLSv1.2 Verbindungen zu:
$AllProtocols = [System.Net.SecurityProtocolType]'Tls11,Tls12' [System.Net.ServicePointManager]::SecurityProtocol = $AllProtocols
Die beiden Zeilen können vor dem Öffnen einer Verbindung innerhalb eines Scriptes ausgeführt werden:
In diesem Beispiel wird nun die Antwort des Servers geliefert. Ein weiterer Grund für den Fehler kann ein ungültiges Zertifikat sein, die Gültigkeitsprüfung lässt sich ebenfalls zur Laufzeit abschalten:
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
Für das PRTG Monitoring Script und den Unifi Controller habe ich das Script um die beiden oben genannten Zeilen erweitert. Somit kann auch der Controller wieder überwacht werden:
Die eingesetzte Unifi Controller Version ist 5.4.18, falls jemand ähnliche Probleme haben sollte.
Update 09.07.17: Gerade ist mir aufgefallen das PRTG die entsprechenden Zeilen ebenfalls schon in einer neuen Version des Sensors hinzugefügt hat:
Monitoring Ubiqiti UniFi Devices with PRTG
Hätte ich mal vorher den das Script für den Sensor aktualisiert…
Vielen Dank. Das war jetzt sehr hilfreich. Das Script funktioniert wieder.