Invoquer-RestMethod - Ignorer Les Certificats Auto-Signés
Il semble que cette question a été posée et répondue, mais jusqu'à présent, chaque solution que j'ai trouver n'aide pas. Je suis en train d'écrire un script PowerShell pour exécuter certaines API REST pour obtenir des informations d'utilisation. Mon script sauts juste essayer de communiquer avec le serveur. Pour le test de souci, je suis en train de faire un très simpliste de commande:
Invoke-RestMethod 'https://server:4443/login'
Il retourne avec cette erreur:
Invoke-RestMethod : The underlying connection was closed: An unexpected error occurred on a send.
Je peux lancer la même commande mais avec l'URL google.com et je reçois un retour valide, donc je connais la commande de travail de manière générale.
Si j'exécute la boucle d'équivalent sur le serveur lui-même, les choses se terminer comme prévu. Voici un extrait de la sortie détaillée de la commande curl:
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using TLSv1.0 / DHE-RSA-AES256-SHA
* Server certificate:
* subject: CN=localhost
* start date: 2016-03-22 21:48:57 GMT
* expire date: 2026-03-20 21:48:57 GMT
* issuer: CN=localhost
* SSL certificate verify result: self signed certificate (18), continuing anyway.
Je suis en supposant que c'est une auto-signé cert question basée sur la recherche le générique d'erreur PowerShell retourne.
J'ai essayé:
[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
et d'autres méthodes similaires (fonctions complexes) pour aider à ignorer les problèmes de certificat avec pas de chance.
Je suis en cours d'exécution de PowerShell 5 dans le cas qui aide.
Je suis décent avec PowerShell code mais c'est ma première fois d'essayer Invoke-RestMethod, donc peut-être que je suis absent quelque chose. Toute réflexion est apprécié.
-Credential
). Ou vous avez besoin de spécifier -Method
paramètre post
ou"get
. Il est difficile de dire si nous ne savons pas ce que votre serveur attend.Mes excuses pour ne pas donner une information complète à l'avance. Je passe des informations d'identification via les en-têtes. J'ai essayé d'appeler explicitement la méthode de trop.
OriginalL'auteur firestarter247 | 2016-04-06
Vous devez vous connecter pour publier un commentaire.
J'ai été regarder dans le même problème, la meilleure ressource que j'ai trouvé ce blog:
http://huddledmasses.org/blog/validating-self-signed-certificates-properly-from-powershell/
L'explication dans le lien que vous avez fourni a été super utile. J'ai été faire "Une erreur inattendue s'est produite lors de l'envoi d'erreur" quand j'ai essayé d'utiliser n'importe quelle méthode de modifier manuellement
[System.Net.ServicePointManager]::ServerCertificateValidationCallback
. C'était frustrant, car il semblait qu'il aurait travaillé à juste retour véritable à travers ce rappel.OriginalL'auteur
Cela fonctionnera également dans les versions ultérieures de powershell avec invoke-restmethod/webrequest. Il évite l'exigence d'une instance d'exploitation par la mise en œuvre de la gestionnaire des natifs .net:
Espère que cette aide.
Le ci-dessus a très bien fonctionné pour moi, mais en plus j'ai aussi dû ajouter le code dans cette réponse: stackoverflow.com/a/41618979/908316
Wow, ça fonctionne. Et c'est tellement plus facile que d'ajouter un "--l'insécurité" à friser. Merci PowerShell pour faire de notre vie ce que c'est facile. Désolé j'ai dit ça à voix haute? ;p
OriginalL'auteur x0n
Source: https://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.servercertificatevalidationcallback(v=vs. 110).aspx
il suffit d'ajouter ce bevor votre
Invoke-RestMethod
ouInvoke-WebMethod
.Puis il y a autre problème, démarrez le logiciel fiddler et du suivi de cette demande.
OriginalL'auteur dhcgn