※ 2019 年 4 月 3 日現在の情報をもとに作成しています
1. はじめに
セキュリティ強化の一環として、Windows OS の TLS 1.0 を無効にした場合、AD Connector または Roaming Client の動作に問題が発生する場合があります。本記事では、その詳細と対処方法について紹介します。
※ 本記事では、Windows OS における SSL/TLS の特定バージョンの有効/無効の設定方法については扱っていません
2. AD Connector の場合
AD Connector は .NET Framework 3.5 上で優先して動作するよう設定されており、.NET Framework 3.5 の HTTPS 通信には基本的に TLS 1.0 が使用されます。そのため、AD Connector がクラウド上の Umbrella API と HTTPS 通信をする際は、デフォルトで TLS 1.0 が使用されます。
もし、セキュリティ上の観点から、AD Connector がインストールされた Windows OS の TLS 1.2 を有効にし、TLS 1.0 を無効にした場合、クラウド上の Umbrella API と通信できなくなり、アプリケーションが正常に動作しません。
その場合、詳細ログ ファイルには以下のようなエラー メッセージが出力されます (OS やバージョンにより異なります)。
- 基礎になる接続が閉じられました: 送信時に予期しないエラーが発生しました。
- 要求は中止されました: SSL/TLS のセキュリティで保護されているチャネルを作成できませんでした
- 基礎になる接続が閉じられました: 受信時に予期しないエラーが発生しました
この対処方法としては、SystemDefaultTlsVersions というレジストリ値を 1 にします。これにより、.NET Framework 側に設定された独自の TLS のバージョンではなく、OS に設定された TLS バージョンを使うようになります。
※ 必ず、事前に OS 側の TLS 1.2 を有効にしておいてください
なお、このレジストリ値の設定場所は、.NET Framework のインストール状況により異なり、.NET Framework 4 (またはそれ以降) のみがインストールされており、.NET Framework 3.5 がインストールされていない場合は以下の場所に設定します。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
32 bit OS の場合は、前者のみを追加し、64 bit OS の場合は、両方を追加します
一方で、.NET Framework 3.5 がインストールされている場合は以下の場所に設定します。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
32 bit OS の場合は、前者のみを追加し、64 bit OS の場合は、両方を追加します
なお、Windows Server 2016 上に .NET Framework 3.5 が追加インストールされている一部の環境においては、上記レジストリの設定をしても、通信が正常化されない場合があります。その場合は、恐れ入りますが .NET Framework 3.5 をアンインストールするか、AD Connector を別の端末にインストールすることをご検討ください。
3. Roaming Client の場合
Roaming Client はもともと AD Connector と同じ対処方法でしたが、バージョン 2.2.150 から .NET Framework と TLS まわりの動作に変更があり、SystemDefaultTlsVersions の設定場所のルールも変わりました。
Roaming Client for Windows – Version 2.2.150
https://support.umbrella.com/hc/en-us/articles/360020941471-Roaming-Client-for-Windows-Version-2-2-150
Windows 7 SP1 に .NET Framework 3.5 のみがインストールされている場合を除いて以下の場所に設定します。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
32 bit OS の場合は、前者のみを追加し、64 bit OS の場合は、両方を追加します
一方で、Windows 7 SP1 に .NET Framework 3.5 のみがインストールされている場合は以下の場所に設定します。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
32 bit OS の場合は、前者のみを追加し、64 bit OS の場合は、両方を追加します
4. SchUseStrongCrypto について
一部のサポート記事には、より強い TLS のバージョンが使われるようにするために、SchUseStrongCrypto というレジストリ値を 1 に設定するとありますが、これらのアプリケーションの場合、これまでの説明のとおり、SystemDefaultTlsVersions を設定するだけでも同様の効果を期待できます。
5. 参考情報
Requirements for forcing TLS 1.2 on the Connector and Roaming Client
https://support.umbrella.com/hc/en-us/articles/115005871543-Requirements-for-forcing-TLS-1-2-on-the-Connector-and-Roaming-Client
Umbrella Connector Error: Register() fail: The underlying connection was closed: An unexpected error occurred on a receive.
https://support.umbrella.com/hc/en-us/articles/360025605611-Umbrella-Connector-Error-Register-fail-The-underlying-connection-was-closed-An-unexpected-error-occurred-on-a-receive-