Julien Chomarat
Si vous avez des scripts PowerShell qui utilisent Invoke-RestMethod
, vous allez sûrement avoir besoin de changer le comportement par défaut.
Je viens d'avoir le problème sur un script qui interroge l'API de Github.
A l'exécution du script j'avais cette erreur :
Invoke-RestMethod : The request was aborted: Could not create SSL/TLS secure channel.
Github a en effet prévenu qu'il désactiverait les connexions sur TLS 1.0 / 1.1 au 1er février 2018. (https://githubengineering.com/crypto-deprecation-notice/)
Par défaut PowerShell utilise la version 1.0 de TLS. Pour régler ce problème il faut ajouter la ligne suivante au début de votre script et tout va rentrer dans l'ordre :
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Dans le cas de PowerShell Core
la variable ci-dessus n'existe plus, par contre, la commande Invoke-RestMethod
a été augmentée et vous pouvez utiliser le paramètre -SslProtocol
:
Invoke-RestMethod -Method POST -Body $Body -Uri $Uri -SslProtocol Tls12