PowerShell: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden

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:

SSL/TLS-Kanal

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:

SSL/TLS-Kanal

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:

SSL/TLS-Kanal

Die eingesetzte Unifi Controller Version ist 5.4.18, falls jemand ähnliche Probleme haben sollte.

PRTG

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…

1 Gedanken zu „PowerShell: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden“

Schreibe einen Kommentar