事象
Ansible で Windowsを管理するために、WindowsにWinRMの接続を受け付けるための初期設定スクリプトを
実行しようとwgetしようとしたら失敗したので、その解決方法をまとめました。
PS C:\Users\Administrator> wget https://github.com/ansible/ansible/raw/devel/examples/scripts/ConfigureRemotingForAnsi
wget : 要求は中止されました: SSL/TLS のセキュリティで保護されているチャネルを作成できませんでした
発生場所 行:1 文字:1
+ wget https://github.com/ansible/ansible/raw/devel/examples/scripts/Co ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest]、WebExc
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
エラー内容
wget : 要求は中止されました: SSL/TLS のセキュリティで保護されているチャネルを作成できませんでした
原因
TLS 1.2 には対応しておらず、エラーとなっていました。
PS C:\Users\Administrator> [Net.ServicePointManager]::SecurityProtocol
Ssl3, Tls
PS C:\Users\Administrator>
対策
下記を実行してTLS1.2に対応させる
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
PS C:\Users\Administrator> [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
PS C:\Users\Administrator> [Net.ServicePointManager]::SecurityProtocol
Tls12
PS C:\Users\Administrator>
おまけ
OSが対応しているSSL/TSLのバージョン確認
PS C:\Users\Administrator> [enum]::GetNames([Net.SecurityProtocolType])
Ssl3
Tls
Tls11
Tls12
PS C:\Users\Administrator>
TSL1.1とTSL1.2に対応させる場合は下記の様に実行
PS C:\Users\Administrator> [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
PS C:\Users\Administrator> [Net.ServicePointManager]::SecurityProtocol
Tls11, Tls12
PS C:\Users\Administrator>