この質問は尋ねられ、回答されたようですが、これまで私が見つけたすべての解決策は役に立ちません。使用情報を取得するためにREST APIを実行するPowerShellスクリプトを作成しています。私のスクリプトはただちにサーバーと通信しようとしています。テストのために、私は非常に単純なコマンドをやってる:Invoke-RestMethod - 自己署名付き証明書を無視する
Invoke-RestMethod 'https://server:4443/login'
それは、このエラーを返します。
Invoke-RestMethod : The underlying connection was closed: An unexpected error occurred on a send.
私は同じコマンドを実行しますが、URLのgoogle.comで、私は有効なを得ることができます私はコマンドが一般的に話していることを知っています。
サーバー上でcurl同等の機能を実行すると、正常に動作します。ここで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.
私はこれだけはかなり一般的なエラーPowerShellのリターンを検索するに基づいて、自己署名証明書の問題であると仮定しています。
私が試してみた:
[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
および他の同様の方法(複雑な機能を)運と証明書の問題を無視支援します。
私はPowerShell 5を使用しています。
私はPowerShellコードでまともですが、これは初めてInvoke-RestMethodを試しているので、何か不足している可能性があります。どんな洞察にも感謝します。私は同じ問題に見てきた
ウェブサーバがauth( '-Credential')を必要とする場合は、あなたの認証情報が失われるかもしれません。あるいは、 '-Method'パラメータ' post'または 'get'を指定する必要があります。あなたのサーバーが期待しているものがわからないのかどうかは分かりません。 –
完全な情報を前もって提供していないことをお詫び申し上げます。ヘッダーを介して資格情報を渡します。私は明示的にメソッドを呼び出そうとしました。 – firestarter247