在 Exchange Server 2010 啟用 TLS 1.1 及 TLS 1.2 支援,並停用 TLS 1.0

作業原因

為因應資安政策需求需停用不安全的 SSL 3.0 跟 TLS 1.0 ,由於 SSL 3.0 早已停用多年,本次作業重點就在於 WAS 跟 Exchange Server 2010 上的 TLS 1.0 停用。

現有環境

Server:    Windows 2008 R2 Standard, Exchange Server 2010
Client:     Windows 7 Pro, Windows 10 Pro, (單機或進網域皆有)
Outlook: 2003, 2007, 2010, 2013, 2016

簡易流程

1. 安裝 Server 及 Client 所需更新
2. 在 Exchange Server 2010 上啟用 TLS 1.2
3. 檢查是否已正常啟用 TLS 1.2
4. 在用戶端 Windows 7 上 Outlook 啟用 TLS1.1 及 TLS 1.2 (Windows 10 上的 Outlook 預設就是使用 TLS 1.2)
5. 停用 Exchange Server 2010 上 TLS1.0 跟 TLS 1.1
6. 測試用戶端 Outlook 與 Exchange Server 2010 連線狀況及其他問題排解

詳細作業程序

1. 安裝 Server 及 Client 所需更新。

==================================================================================================

Server:

  1. 安裝 WinHTTP 版本安全性更新 KB3161949
  2. 遠端桌面 TLS 1.2 支援更新 KB3080079
  3. 安裝 .NET Framework 3.5.1 更新 KB3154518
  4. 有 SHA 512 憑證的,需安裝更新 KB2973337

Exchange Server 2010:

  1. 最低需求安裝 Roll Up 20 以上 (建議安裝RU24以上)
  2. 安裝 .NET Framework 3.5.1 及相關更新

Client:

  1. 遠端桌面 TLS 1.2 支援更新 KB3080079
==================================================================================================

2. 在 Exchange Server 2010 上啟用 TLS 1.2

2-1. 為 Schannel 啟用 TLS 1.2,開啟記事本並貼上分隔線內文字後另存成 TLS12-Enable.reg,然後點擊匯入登錄中。
==================================================================================================
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001
==================================================================================================

2-2. 為 .NET Framework 3.5 啟用 TLS 1.2,開啟記事本並貼上分隔線內文字後另存成 NET35-UseSchannelDefaults.reg,然後點擊匯入登錄中。
==================================================================================================
Windows Registry Editor Version 5.00
[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
==================================================================================================

3. 驗證是否已正常啟用 TLS 1.2 (未實作)

可以透過幾個方式來驗證是否已正常啟用 TLS 1.2
  • 透過負載平衡器或防火牆來查詢通過的資訊
  • 使用 SMTP Log 查詢郵件傳送過程中是否使用 TLS1.2 (這是最直接簡單的方式)
  • 使用 netmon 抓 POP/IMAP 封包

啟用 SMTP Logs

由於 SMTP Log 預設是沒有啟動的,我們必須在 Transport Server 上啟動紀錄功能。


1. 在 Receive Connector上啟用紀錄

使用 Powershell:

套用單一Receive Connector: Set-ReceiveConnector “Connector Name” -ProtocolLoggingLevel verbose
套用全部Receive Connector: Get-ReceiveConnector | Set-ReceiveConnector -ProtocolLoggingLevel verbose

使用EMC:
image

2. 在 Send Connector上啟用紀錄


使用Powershell:

單一Receive Connector: Set-SendConnector “Send Connector Name” -ProtocolLoggingLevel verbose

使用EMC:
image

3. 在 Intra-Organization Send Connector 上啟用紀錄


使用Powershell:
Set-TransportServer “TRANSPORT SERVER NAME” -IntraOrgConnectorProtocolLoggingLevel verbose


檢視SMTP Logs

Log Default location
Receive Connector \Exchange Server Installed Path\TransportRoles\Logs\ProtocolLog\SmtpReceive
Send Connector \Exchange Server Installed Path\TransportRoles\Logs\ProtocolLog\SmtpSend


其他要考慮的事項

1. Domain Controller 或 Global Catalog Server 是否支援 TLS1.2
2. 其他軟體是否支援TLS1.2 ? ( 如: Sharepoint, Lync, Skype…..等)
3. 要更新使用 Outlook 的 Win7 電腦以支援 TLS 1.2 over WinHTTP
4. 網路負載平衡器是否支援 TLS1.2 ?
5. 電腦、手持裝置或網頁程式是否支援 TLS1.2 ?
6. 多功能事務機是否支援 TLS1.2 ?
7. 和 Exchange Server 整合的第三方或訂製軟體是否支援 TLS1.2 ?

4. 在用戶端 Windows 7 上 Outlook 啟用 TLS1.1 及 TLS 1.2

1. 決定 Outlook 要啟用的 TLS 版本 (因客戶需求,我們選擇只啟用 TLS 1.1 跟 TLS 1.2)
  • 只啟用 TLS 1.1 跟 TLS 1.2 : DefaultSecureProtocals 登錄 DWORD 值要設為 A00
  • 啟用 TLS 1.0、TLS 1.1 跟 TLS 1.2 : DefaultSecureProtocals 登錄 DWORD 值要設為 A80
2. 檢查 Windows 7 用戶端是否已安裝 KB3140245,如果沒有需安裝此更新。
3. 根據決定要啟用的 TLS 版本新增 DWORD 值 DefaultSecureProtocols 到登錄檔中位址。
  • (32bit OS) : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
  • (64bit OS) :
      1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
      2. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
4. 新增DWORD 值 DisabledByDefault 到以下登錄檔中位址。
    1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client
    2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
5. 製作可派送的批次檔,內容如下。
==================================================================================================
if "%PROCESSOR_ARCHITECTURE%"=="x86" goto x86
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto x64
exit
:x64
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp" /v DefaultSecureProtocols /t REG_DWORD /d 0x00000A00 /f
:x86
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp" /v DefaultSecureProtocols /t REG_DWORD /d 0x00000A00 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" /v DisabledByDefault /t REG_DWORD /d 0 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 0 /f
==================================================================================================


補充說明

Windows 7 和 Windows 8.0 是透過 Schannel 支援 TLS 1.1 and 1.2 (因此為什麼IE能夠使用 TLS 1.1 and 1.2) 但如果沒有預先安裝更新或修改登錄值是無法替WinHTTP-based的應用程式啟用TLS 1.1 and 1.2 的。


5. 停用 Exchange Server 2010 上 TLS1.0 跟 TLS 1.1

1. 為 Schannel 停用 TLS 1.0,開啟記事本並貼上分隔線內文字後另存成 TLS10-Disable.reg,然後點擊匯入登錄中。
==================================================================================================
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client]
"DisabledByDefault"=dword:00000001
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]
"DisabledByDefault"=dword:00000001
"Enabled"=dword:00000000
==================================================================================================

2. 為 Schannel 停用 TLS 1.1,開啟記事本並貼上分隔線內文字後另存成 TLS11-Disable.reg,然後點擊匯入登錄中。
==================================================================================================
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]
"DisabledByDefault"=dword:00000001
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
"DisabledByDefault"=dword:00000001
"Enabled"=dword:00000000
==================================================================================================

6. 測試用戶端 Outlook 與 Exchange Server 2010 連線狀況及其他問題排解


照著所有步驟後應該就能運作正常,但由於過於忙碌,最後忘了派送步驟4產生的批次檔到用戶端,導致發生以下兩個狀況。
  1. Outlook 2016建新郵件資料檔時無法正常連線到Exchange Server 2010
  2. Outlook 自動回覆功能無法使用
其中問題一是只有 Outlook 2016 (無論用戶端是否有無加入網域)皆無法連線 Exchange Server,其他版本(2003~2013)則無論是否有無加入網域都能正常新建郵件檔;但如果在 Exchange Server 2010 停用 TLS 1.0 之前就已建好郵件檔的用戶端無論是加入網域或使用哪個版本的 Outlook (2003~2016)都可以正常連線及收發信,但會發生問題二的狀況。當然在完成步驟4後,問題一跟二都解決了。

伺服器驗證方面,最後只採用 SSL Labs 網站的測試,如果已正常啟用 TLS 1.2 並停用 TLS1.0 及 TLS 1.1 的話,網站檢測結果將會是只有 TLS 1.2 被勾選。


參考資料

1. Exchange Server TLS guidance, part 1: Getting Ready for TLS 1.2
2. Exchange Server TLS guidance Part 2: Enabling TLS 1.2 and Identifying Clients Not Using It
3. Exchange Server TLS guidance Part 3: Turning Off TLS 1.0/1.1
4. Enabling TLS 1.1 and 1.2 in Outlook on Windows 7
5. Update to enable TLS 1.1 and TLS 1.2 as a default secure protocols in WinHTTP in Windows


留言

匿名表示…
首先謝謝板大無私分享,想確認一下,你是否有多輸入
5. 停用 Exchange Server 2010 上 TLS1.0 跟 TLS 1.1
1. 為 Schannel 停用 TLS 1.0,開啟記事本並貼上分隔線內文字後另存成 TLS10-Disable.reg,然後點擊匯入登錄中。
==================================================================================================
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0]==>這行是否有多輸入

熱門文章