J'essaie d'exécuter cette commande Powershell
Invoke-WebRequest -Uri https://apod.nasa.gov/apod/
et je reçois cette erreur. "Invoke-WebRequest: la demande a été abandonnée: impossible de créer un canal sécurisé SSL / TLS." Les demandes https semblent fonctionner (" https://google.com ") mais pas celle-ci en question. Comment puis-je le faire fonctionner ou utiliser une autre commande powershell pour lire le contenu de la page?
powershell
ssl
hewstone
la source
la source
Réponses:
essayez d'utiliser celui-ci
la source
$env:Profile
, ou mieux encore, modifiez la table de registre .Dans une tentative éhontée de voler des votes,
SecurityProtocol
c'est unEnum
avec l'[Flags]
attribut. Vous pouvez donc faire ceci:Ou puisque c'est PowerShell, vous pouvez le laisser analyser une chaîne pour vous:
Ensuite, vous n'avez pas besoin techniquement de connaître la version TLS.
J'ai copié et collé cela à partir d'un script que j'ai créé après avoir lu cette réponse parce que je ne voulais pas parcourir tous les protocoles disponibles pour en trouver un qui fonctionnait. Bien sûr, vous pouvez le faire si vous le souhaitez.
Remarque finale - J'ai la déclaration d'origine (moins les modifications SO) dans mon profil PowerShell, donc c'est à chaque session que je commence maintenant. Ce n'est pas totalement infaillible car il y a encore des sites qui échouent mais je vois sûrement le message en question beaucoup moins fréquemment.
la source
[Net.ServicePointManager]::SecurityProtocol = "Tls12, Tls11, Tls, Ssl3"
. N'oubliez pas que SSLv3 et TLSv1.0 sont obsolètes en raison de POODLE, utilisez-les donc à vos propres risques.Si, comme moi, rien de ce qui précède ne fonctionne, il peut être intéressant d'essayer spécifiquement une version TLS inférieure seule. J'avais essayé les deux solutions suivantes, mais ne semblait pas résoudre mon problème:
Au final, ce n'est que lorsque j'ai ciblé TLS 1.0 (en particulier supprimer 1.1 et 1.2 dans le code) que cela a fonctionné:
Le serveur local (sur lequel cela a été tenté) fonctionne bien avec TLS 1.2, bien que le serveur distant (qui était auparavant "confirmé" comme satisfaisant pour TLS 1.2 par un tiers) ne semble pas l'être.
J'espère que cela aide quelqu'un.
la source
Ça marche pour moi...
la source
Assurez-vous de commuter le SHELL en premier:
la source
Je n'ai pas compris la raison, mais la réinstallation du
.pfx
certificat (à la fois dans l'utilisateur actuel et sur la machine locale) fonctionne pour moi.la source
Invoke-WebRequest
localement, cela fonctionne au début mais échouera plus tard. Il semble que parfois, il ne peut plus lire le certificat (je ne connais pas le mécanisme qui le sous-tend. Mais la réinstallation du certificat fonctionne dans ce cas.