Script Powershell pour télécharger le fichier, rencontre des difficultés pour établir une connexion sécurisée

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

  •  02-07-2019
  •  | 
  •  

Question

Je suis en train de créer un script automatisé pour lire une liste d'un site publiant le dernier code compilé. C'est la partie que j'ai déjà comprise. La prochaine partie du script consiste à récupérer ce code compilé sur un serveur doté d’un certificat non approuvé.

Voici comment je vais récupérer le fichier:

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

J'obtiens ensuite l'erreur suivante:

  

Appel d’exception " DownloadFile " avec " 2 " argument (s): "Le sous-jacent   connexion a été fermée: Impossible d'établir une relation de confiance pour le   Canal sécurisé SSL / TLS. "

Je sais que quelque chose me manque, mais je ne peux pas trouver le bon moyen de le rechercher.

Était-ce utile?

La solution

Vous devez écrire un gestionnaire de rappel pour ServicePointManager .ServerCertificateValidationCallback .

Autres conseils

Brad a raison, mais notez que PowerShell V1 ne prend pas en charge les délégués en natif, ce dont vous aurez besoin dans ce cas particulier. Je pense que cela devrait vous permettre de contourner cette limitation ( En fait, le scénario que vous décrivez est exactement l'un des exemples utilisés).

Si vous utilisez Powershell et faites face à cette erreur. Utilisez la commande:

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

avant de télécharger le package. Il oblige PS à utiliser TLS 1.2.

La raison de l'échec peut être que le site Web sur lequel vous essayez de télécharger a désactivé la prise en charge de TLS 1.0 utilisée par PS par défaut.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top