在 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 2010Client: 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:
- 安裝 WinHTTP 版本安全性更新 KB3161949
- 遠端桌面 TLS 1.2 支援更新 KB3080079
- 安裝 .NET Framework 3.5.1 更新 KB3154518
- 有 SHA 512 憑證的,需安裝更新 KB2973337
Exchange Server 2010:
- 最低需求安裝 Roll Up 20 以上 (建議安裝RU24以上)
- 安裝 .NET Framework 3.5.1 及相關更新
Client:
- 遠端桌面 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:
2. 在 Send Connector上啟用紀錄
使用Powershell:
單一Receive Connector: Set-SendConnector “Send Connector Name” -ProtocolLoggingLevel verbose
使用EMC:
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.22. 其他軟體是否支援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
3. 根據決定要啟用的 TLS 版本新增 DWORD 值 DefaultSecureProtocols 到登錄檔中位址。
- (32bit OS) : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
- (64bit OS) :
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
- HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
==================================================================================================
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產生的批次檔到用戶端,導致發生以下兩個狀況。
其中問題一是只有 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.22. 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]==>這行是否有多輸入