#author("2018-08-27T21:26:21+09:00","","")
#author("2018-08-27T21:27:02+09:00","","")
#navi(../)

* PowerShellでTLS1.2を指定して使用する方法 [#ed433d8d]
* PowerShellでTLS1.2, TLS1.1を指定して使用する方法 [#ed433d8d]
Invoke-RestMethod コマンドレットやInvoke-WebRequestコマンドレットなどでhttpsを使用して接続してみたら、~
以下のようなエラーが発生した場合、TLS1.2のみのサポートなどでエラーなった可能性があります。
  Invoke-WebRequest : 接続が切断されました: 送信時に、予期しないエラーが発生しました。。
  発生場所 行:1 文字:13
 + $response = Invoke-WebRequest -UseBasicParsing "https:// ...
 +             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest]、WebException
     + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
本資料では、TLSのバージョンを指定する方法を記します。
本資料では、TLSのバージョンの指定や確認する方法を記します。

#contents
#htmlinsertpcsp(win-top.html,win-sp.html)

* 参考資料 [#gc6fa790]
-[[.NET Framework で TLS1.1 および 1.2 を有効化する方法>https://blogs.technet.microsoft.com/jpieblog/2015/04/07/net-framework-tls1-1-1-2/]]

* TLS1.2を使用したサンプルコード [#r0b0de45]
以下のURLでは、TLS1.2を使用したサンプルコードを公開しています。~
http://cryptocurrency.just4fun.biz/?API/CoinExchange.io#ld8fda54

* TLS1.2を指定する方法 [#d1bbc38a]
TLS1.2を指定する方法は以下の構文です。
 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
一番最後にTls12と指定しているので、わかると思います。~
Invoke-RestMethod コマンドレットやInvoke-WebRequestコマンドレットでhttps接続する前に~
本構文を実行してください。

* サポートされているTLSバージョンを確認する方法 [#n426f671]
以下の構文でサポートされているTLSを確認することができます。
 [enum]::GetNames([Net.SecurityProtocolType])
以下、実際に上記構文を実行したときの出力です。
 PS C:\> [enum]::GetNames([Net.SecurityProtocolType])
 SystemDefault
 Ssl3
 Tls
 Tls11
 Tls12

* 設定されているTLSを確認する [#u87de313]
以下の構文で設定されているTLSを確認することができます。
 [Net.ServicePointManager]::SecurityProtocol
Windows10のデフォルトでは以下のように出力されました。
 PS C:\> [Net.ServicePointManager]::SecurityProtocol
 Ssl3, Tls
設定すれば、以下のようになります。
 PS C:\> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
 PS C:\> [Net.ServicePointManager]::SecurityProtocol
 Tls12

* 複数のTLSバージョンを指定する [#l8e45384]
列挙型で複数指定すれば、複数のTLSバージョンを設定することができます。~
以下の構文では、TLS, TLS1.1, TLS1.2を指定しています。
 [Net.ServicePointManager]::SecurityProtocol = @([Net.SecurityProtocolType]::Tls,[Net.SecurityProtocolType]::Tls11,[Net.SecurityProtocolType]::Tls12)
以下、実際に上記の構文を実行し、設定を確認しています。
 PS C:\> [Net.ServicePointManager]::SecurityProtocol = @([Net.SecurityProtocolType]::Tls,[Net.SecurityProtocolType]::Tls11,[Net.SecurityProtocolType]::Tls12)
 PS C:\> [Net.ServicePointManager]::SecurityProtocol
 Tls, Tls11, Tls12

以上、PowerShellでTLSのバージョンを指定する方法でした。

#htmlinsertpcsp(win-btm.html,win-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS