Script Powershell per scaricare il file, con difficoltà a configurare una connessione sicura

StackOverflow https://stackoverflow.com/questions/146973

  •  02-07-2019
  •  | 
  •  

Domanda

Sto realizzando uno script automatico per leggere un elenco da un sito che pubblica l'ultimo codice compilato. Questa è la parte che ho già capito. La parte successiva dello script è quella di prendere quel codice compilato da un server con un certificato non attendibile.

Ecco come sto andando a prendere il file:

$web = new-object System.Net.WebClient
$web.DownloadFile("https://uri/file.msi", "installer.msi")

Quindi ottengo il seguente errore:

  

Eccezione che chiama " DownloadFile " con "2" argomento / i: " il sottostante   connessione chiusa: impossibile stabilire una relazione di trust per   Canale sicuro SSL / TLS. & Quot;

So che mi manca qualcosa, ma non riesco a trovare il modo corretto di cercarlo.

È stato utile?

Soluzione

Devi scrivere un gestore di callback per ServicePointManager .ServerCertificateValidationCallback .

Altri suggerimenti

Brad ha ragione, ma nota che PowerShell V1 non ha davvero il supporto nativo per i delegati, cosa di cui avrai bisogno in questo caso specifico. Credo che questo dovrebbe farti superare tale limitazione ( infatti lo scenario che descrivi è esattamente uno degli esempi utilizzati).

Se stai usando PowerShell e stai affrontando questo errore. Usa il comando:

[Net.ServicePointManager] :: SecurityProtocol = [System.Net.SecurityProtocolType] :: Tls12

prima di scaricare il pacchetto. Obbliga PS a utilizzare TLS 1.2.

Il motivo dell'errore potrebbe essere il sito Web da cui si sta tentando di scaricare ha disabilitato il supporto per TLS 1.0 che PS utilizza per impostazione predefinita.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top