Powershell-Skript zum Download-Datei, Probleme, einen sicheren Verbindungsaufbau mit
-
02-07-2019 - |
Frage
Ich mache ein automatisiertes Skript eine Liste von einer Website lesen Sie den neuesten kompilierten Code veröffentlichen. Das ist der Teil ich schon gedacht habe aus. Der nächste Teil des Skripts ist, dass die kompilierten Code von einem Server mit einem nicht vertrauenswürdigen Cert zu greifen.
Dies ist, wie ich packt die Datei werde:
$web = new-object System.Net.WebClient
$web.DownloadFile("https://uri/file.msi", "installer.msi")
Dann bekomme ich folgende Fehlermeldung:
Ausnahme calling "Downloadfile" mit "2" Argumente (e): „Die zugrunde liegenden Verbindung wurde geschlossen: Es konnte keine Vertrauensbeziehung für die etablieren SSL / TLS sichere Kanal. "
Ich weiß, ich bin etwas fehle, aber ich kann nicht den richtigen Weg für sie suchen erhalten.
Lösung
Sie benötigen einen Callback-Handler für Servicepoint schreiben .ServerCertificateValidationCallback .
Andere Tipps
Brad ist richtig, aber feststellen, dass Powershell V1 nicht wirklich hat native Unterstützung für die Teilnehmer, die Sie in diesem speziellen Fall benötigen. Ich glaube, das sollte bekommen um dieser Beschränkung ( in der Tat ist genau das Szenario, das Sie beschreiben eines der Beispiele verwendet wird).
Wenn Sie Powershell verwenden und diesen Fehler konfrontiert. Verwenden Sie den Befehl:
[Net.ServicePointManager] :: SecurityProtocol = [System.Net.SecurityProtocolType] :: Tls12
, bevor das Paket herunterzuladen. Es zwingt PS TLS zu verwenden 1.2.
Der Grund für das Scheitern könnte die Website sein, von dem Sie herunterladen möchten hat die Unterstützung für TLS 1.0 deaktiviert die PS standardmäßig verwendet.