在 IE9/IE10/IE11 中訪問 HTTPS 網站彈出「此網站的安全證書有問題」,點擊「繼續瀏覽 (不推薦)」仍無法進入,甚至直接白屏/報錯。根因多為微軟安全更新 KB2661254 強制要求 SSL/TLS 憑證金鑰長度 ≥ 1024 位,導致舊版憑證 (512 位/768 位) 的設備 (SSL VPN、舊款防火牆、舊版 Exchange、內部管理頁面) 徹底無法訪問。本文提供「卸載補丁」與「升級憑證」兩條路徑,並給出現代替代方案。
schannel.dll,將 TLS/SSL 客戶端最小金鑰長度從 512 位提升至 1024 位。任何呈現 < 1024 位公鑰的伺服器憑證,將在 TLS 握手階段被客戶端直接拒絕 (Alert: insufficient_security / handshake_failure)。appwiz.cpl → 左側「查看已安裝的更新」。server.crt + chain.crt (中間 CA) + private.key,配置 TLS 1.2/1.3、啟用 HSTS、OCSP Stapling、安全加密套件 (TLS_AES_256_GCM_SHA384 等)。openssl s_client -connect host:443 -servername host -tls1_2、nmap --script ssl-enum-ciphers -p 443 host、Qualys SSL Labs 測試 (公網) → 評級 A+。# 檢查 KB2661254 是否安裝
Get-HotFix -Id KB2661254 -ErrorAction SilentlyContinue
# 測試目標站點 TLS 握手最小金鑰長度接受情況
$target = "your-legacy-host:443"
try {
$tcp = New-Object Net.Sockets.TcpClient
$tcp.Connect("your-legacy-host", 443)
$ssl = New-Object Net.Security.SslStream($tcp.GetStream())
$ssl.AuthenticateAsClient("your-legacy-host")
Write-Host "TLS 協商成功,協議: $($ssl.SslProtocol), 加密套件: $($ssl.CipherAlgorithm), 金鑰交換: $($ssl.KeyExchangeAlgorithm)"
$cert = $ssl.RemoteCertificate
if ($cert) { Write-Host "憑證公鑰長度: $($cert.PublicKey.Key.KeySize) 位" }
} catch { Write-Error "握手失敗: $_" } finally { $ssl.Dispose(); $tcp.Dispose() }
KB2661254 是微軟推動 TLS 生態向 ≥1024 位遷移的關鍵一招。對於仍依賴舊憑證的系統,「卸載補丁」只是止血,「升級憑證」才是治本,「現代化替代」才是出路。請根據資產價值與風險承受度,選擇正確路徑。