Es scheint, als ob diese Frage gestellt und beantwortet wurde, aber bisher hilft mir jede Lösung, die ich finde, nicht. Ich schreibe ein PowerShell-Skript, um einige REST-APIs auszuführen, um Nutzungsinformationen zu erhalten. Mein Skript bricht sofort ab und versucht nur, mit dem Server zu kommunizieren. Zum Testen willen, mache ich einen sehr simplen Befehl:Invoke-RestMethod - Ignoriere selbst signierte Certs
Invoke-RestMethod 'https://server:4443/login'
Es gibt mit diesem Fehler:
Invoke-RestMethod : The underlying connection was closed: An unexpected error occurred on a send.
Ich kann den gleichen Befehl aber mit URL google.com laufen und ich bekomme eine gültige Ich weiß, dass der Befehl im Allgemeinen funktioniert.
Wenn ich die Curl-Äquivalent auf dem Server selbst ausführen, werden die Dinge wie erwartet abgeschlossen. Hier ist ein Ausschnitt der ausführlichen Ausgabe des curl Befehls:
* 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.
ich nur davon aus, dies ist eine selbst signierte Zertifikat Ausgabe basierend auf den ziemlich allgemeinen Fehler sucht Powershell zurückzugibt.
Ich habe versucht:
[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
und andere ähnliche Methoden (komplexe Funktionen) zu helfen Zertifikat Fragen ohne Glück zu ignorieren.
Ich benutze PowerShell 5, falls das hilft.
Ich bin anständig mit PowerShell-Code, aber das ist mein erstes Mal versuchen, Invoke-RestMethod, also vielleicht ich etwas fehlt. Jeder Einblick wird geschätzt.
Vielleicht vermissen Sie Ihre Anmeldeinformationen, wenn der Webserver auth ('-Credential') benötigt. Oder Sie müssen '-Method'-Parameter' post' oder '' get' 'angeben. Es ist schwer zu sagen, wenn wir nicht wissen, was Ihr Server erwartet. –
Ich entschuldige mich dafür, keine vollständigen Informationen im Voraus zu geben. Ich gebe Anmeldeinformationen über Header. Ich habe versucht, die Methode auch explizit aufzurufen. – firestarter247