M365接続TLS1.2必須化対応(OS/.NET Framework/Powershell)

スクリプト

前々から言われてきていたことだが、いよいよ各テナントに仕様変更が伝搬してきているよう。

対策しないとM365へスクリプトで接続できない状態になるので、早めに手を打っておきましょう。

対策にあたっては、

  • OS観点での対策
  • .NET Framework観点での対策
  • Powershell観点での対策

があるよう。

TLS1.2必須化対応 – OS観点での対策

この対策は、OSとしてTLS1.2がデフォルトの暗号化方式になっていない場合に必須の対策です。

Windows Server 2012R2、Windows 8.1以降のOSはTLS1.2のNativeにサポートしているのでこの対策は不要となります。

私はWindows Server 2012の環境があったので、そこでこの対策を実施しました。以下が実施した内容のメモです。

  1. 更新プログラム適用(kb3140245)※これをしないと2.のレジストリ変更をおこなってもTLS1.2デフォルト化がされません
  2. レジストリ値を変更
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
	DisabledByDefault: 00000000
	Enabled: 00000001
	
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server
	DisabledByDefault: 00000000
	Enabled: 00000001

TLS1.2必須化対応 – .NET Framework観点での対策

こんなのもあるんですね。こちらもレジストリ値の変更で対応します。

以下のレジストリを追加します。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions" = dword:00000001
      "SchUseStrongCrypto" = dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
      "SystemDefaultTlsVersions" = dword:00000001
      "SchUseStrongCrypto" = dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions" = dword:00000001
      "SchUseStrongCrypto" = dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
      "SystemDefaultTlsVersions" = dword:00000001
      "SchUseStrongCrypto" = dword:00000001

TLS1.2必須化対応 – Powershell観点での対策

こちらは、M365接続等を実行する前にコマンドを打ち込みます。

[Net.ServicePointManager]::SecurityProtocol
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3, [Net.SecurityProtocolType]::Tls, [Net.SecurityProtocolType]::Tls12
[Net.ServicePointManager]::SecurityProtocol

コメント

タイトルとURLをコピーしました