Atom
關閉1433port上的TLS 1.0(MSSQL) 修補104743

關閉1433port上的TLS 1.0(MSSQL) 修補104743

稍微講一下怎麼關,有客戶不知道怎麼關所以教了一下。

注意,在更動所有設定前請先進行備份防止損壞或後續須調整回原設定

首先是確認你的 SQL Server 支援 TLS 1.2

  1. 確認 SQL Server 版本:

    1
    SELECT @@VERSION;

    SQL Server 2008 以上才有可能支援 TLS 1.2。
    若是舊版(如 2008 R2 SP3 以前),需安裝 TLS 1.2 支援更新 KB3135244

  2. 確認 .NET Framework 版本:

    需至少安裝 .NET Framework 4.6 以上(內建 TLS 1.2 支援)。

在 Windows 停用 TLS 1.0(伺服器端)

方法一

  • 進入登錄編輯器
    win+R後執行:
    1
    regedit
  • 找到路徑:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\
    建立或修改以下金鑰:
  • 禁用 TLS 1.0:
    1
    2
    3
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]
    "Enabled"=dword:00000000
    "DisabledByDefault"=dword:00000001
  • 禁用 TLS 1.1:
    1
    2
    3
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
    "Enabled"=dword:00000000
    "DisabledByDefault"=dword:00000001
  • 啟用 TLS 1.2:
    1
    2
    3
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
    "Enabled"=dword:00000001
    "DisabledByDefault"=dword:00000000

    若沒有 TLS 1.0 或 TLS 1.2 子目錄,請自行建立資料夾與 DWORD。


方法二

  • 使用powershell腳本
    此腳本來源
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    # Learn more at https://learn.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings?tabs=diffie-hellman
    Set-StrictMode -Version Latest

    $base = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\'
    $protocols = [ordered]@{
    "SSL 2.0" = $false
    "SSL 3.0" = $false
    "TLS 1.0" = $false
    "TLS 1.1" = $false
    "TLS 1.2" = $true
    "TLS 1.3" = $true
    }

    foreach ($version in $protocols.Keys) {

    $enabledValue = $protocols[$version]
    $path = $base + $version + '\Server'

    New-Item $path -Force | Out-Null
    New-ItemProperty -Path $path -Name 'Enabled' -Value $enabledValue -PropertyType 'DWord' -Force | Out-Null

    Write-Host "$version is $enabledValue."
    }

方法三

啟用個體嚴格加密,設定Force Strict Encryption
依照圖上進行調整即可


重啟 SQL Server 與系統服務

  • 執行:
    1
    2
    net stop mssqlserver
    net start mssqlserver
    或直接重開機以確保新 TLS 設定生效。

驗證結果

用 nmap 檢查伺服器 1433 是否仍允許 TLS 1.0:

1
nmap --script ssl-enum-ciphers -p 1433 <server_ip>

若成功關閉,輸出中應只顯示:TLSv1.2

或使用 PowerShell 測試:

1
Test-NetConnection -ComputerName <server_ip> -Port 1433

若 TLS 1.0 關閉,舊版客戶端(僅支援 TLS 1.0)會無法連線。
如果有人來靠腰那就代表1.0不能關了關了會進不去。

本文作者:Atom
本文鏈接:https://d0ngd.github.io/2025/10/31/關閉1433port上的TLS 1.0(MSSQL)/
版權聲明:本文採用 CC BY-NC-SA 3.0 CN 協議進行許可