none
Invoke-RestMethod、Invoke-WebRequestが失敗する RRS feed

  • 質問

  • Invoke-RestMethodとInvoke-WebRequestによりWebサイトに対して処理を行おうとした際に、以下のようなエラーが出て処理が失敗しました。

    エラー内容:

    Invoke-RestMethod : 要求は中止されました: SSL/TLS のセキュリティで保護されているチャネルを作成できませんでした

    以前は同じ処理が実行できていたのですが、突然このような状態となってしまいました。

    複数のマシンで実行してみましたが、現象は変わりませんでした。

    PowerShellはバージョン4で、OSはWindows 7およびWindows2012で実行しています。

    対応方法が分かれば教えていただけないでしょうか。

    2015年12月15日 9:49

回答

  • ご回答ありがとうございます。

    教えていただいたコマンドを実行した段階では状況は変わりませんでしたが、その他にTLSのバージョンの指定を1.1、1.2に変更してみたところ、正常にアクセスできるようになりました。

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls11
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

    今回の対象サイト(某クラウドサービスのポータル)のセキュリティが強化された可能性があるのではと考えています。

    問題は無事解決できました。ありがとうございました。

    2015年12月16日 16:23

すべての返信

  • 何らかの原因で、サイトの証明書が無効になっているのではないでしょうか。

    Webブラウザで当該サイトにアクセスした場合、セキュリティ警告など表示されませんか?

    サイトの証明書が無効なものである場合でも、アクセスを継続するには、Webサイトにアクセスする処理の前で、

    [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}

    という一文を追加しておくと良いかと思います。

    • 回答の候補に設定 kogesakaMVP 2015年12月16日 23:17
    2015年12月15日 23:55
    モデレータ
  • ご回答ありがとうございます。

    教えていただいたコマンドを実行した段階では状況は変わりませんでしたが、その他にTLSのバージョンの指定を1.1、1.2に変更してみたところ、正常にアクセスできるようになりました。

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls11
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

    今回の対象サイト(某クラウドサービスのポータル)のセキュリティが強化された可能性があるのではと考えています。

    問題は無事解決できました。ありがとうございました。

    2015年12月16日 16:23