Короткий ответ
Даже на TLS 1.2 сервер может предлагать слабые cipher suite: RC4, 3DES, NULL, анонимные, устаревшие RSA-без-forward-secrecy в некоторых политиках сканеров. На Windows управляйте набором через Get-TlsCipherSuite / Disable-TlsCipherSuite и GPO «SSL Cipher Suite Order» / приоритет CCS, строго по документации Schannel для вашей ОС. Не копируйте строку порядка с блога 2016 года — сломаете RDP/IIS/WinRM. Сначала выключите TLS 1.0/1.1, потом режьте suite.
Не отключайте firewall, чтобы «шифр прошёл». Не выдумывайте CVE: работайте с именами suite из Get-TlsCipherSuite.
Симптомы и как отличить
- Отчёт:
TLS_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_3DES_EDE_CBC_SHA, NULL. - Handshake проходит с устаревшим клиентом «на слабом».
- После чужого порядка suite — «не открывается сайт с Windows 7» (иногда так и надо) или «не открывается с Windows 11» (вы сломали строку).
| Находка | Не cipher |
|---|---|
| TLS 1.0 | устаревшие TLS |
| Слабый сертификат | PKI |
| HTTP без TLS | сначала HTTPS |
| SMB signing | не Schannel |
Возможные причины
- Дефолт Server 2019 с совместимостью.
- GPO с древним Cipher Suite Order.
- Требование одного вендора на 3DES.
- Ручной Disable части suite, reboot не сделан, процессы держат старое.
- Балансировщик предлагает свой набор, Windows уже чистый.
Диагностика
На сервере приложения:
Get-TlsCipherSuite | Format-Table Name, Certificate, Exchange, Hash, Cipher, LengthЗафиксируйте список до изменений в C:\Temp\ciphers-before.txt. Скан с jump (инструмент организации) на 443 и 5986.
Реестр порядка (имя значения и формат — по документу Microsoft «Priority of cipher suites» / GPO SSL Cipher Suite Order для вашей версии; на новых ОС предпочитайте cmdlet и CCS):
Get-ItemProperty 'HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002' -ErrorAction SilentlyContinueIIS / WinRM HTTPS слушают Schannel — после изменения проверьте оба. RDP: отдельная проверка с консолью наготове.
Журнал Schannel в System после пилота.
Решение
Сценарий A. Точечно выключить известный мусор
Пилот не ERP:
Get-TlsCipherSuite | Where-Object { $_.Name -match 'RC4|DES|NULL|EXPORT|PSK' } |
ForEach-Object { Disable-TlsCipherSuite -Name $_.Name }Имена должны существовать в Get-TlsCipherSuite. Если cmdlet говорит, что suite нет — не выдумывайте имя.
Перезапуск IIS:
IISResetДля системных служб часто нужен reboot. Планируйте.
Сценарий B. Эталон порядка через GPO
Используйте актуальный список Microsoft для Windows Server 2022/2025 / Windows 11 (Cipher suite in Schannel / HTTP/2 требования). GPO: SSL Cipher Suite Order — строка suite через запятую, длина лимитирована; на новых ОС смотрите политику Curve и Cipher suites в ADMX «SSL Configuration». Если строка обрезается — получите сломанный TLS.
Не мешайте одновременно пять инструментов (IIS Crypto + GPO + ручной Disable + SCCM) без одного источника правды.
Сценарий C. Нужен 3DES «ещё год»
Изолируйте хост, не весь contoso.example. Дата вывода. На основном IIS — 3DES Disable.
Сценарий D. Только AEAD / PFS
Сканеры просят GCM/CHACHA и ECDHE. Это достигается удалением старых TLS_RSA_WITH_AES_128_CBC_SHA и подобных, после проверки клиентов (сканеры, старые Java, 1С). Пилот, затем OU серверов.
Эталон cipher для contoso.example храните рядом с GPO, с датой review и сборкой Server 2022/2025. Пилот не должен быть DC01: сломанный Schannel на единственном DC — плохой вечер. Проверьте WS-042 как клиент к IIS и к WinRM HTTPS jump после Disable RC4/3DES. Если HTTP/2 включён, сверка с списком Microsoft обязательна, иначе сайт «просто не открывается» без понятной ошибки в браузере. Load balancer снова может предлагать RC4, даже когда Windows чистый — сканируйте VIP и backend отдельно. Не смешивайте IIS Crypto GUI и GPO порядка без одного источника правды.
На WS-042 как клиенте после сужения suite проверьте корпоративный портал и WSUS TLS: слишком короткий эталон ломает внутренние сайты на Server 2019, пока их не вывели. Держите матрицу suite по поколениям ОС.
После Disable-TlsCipherSuite сохраните CSV «до/после» в заявке: без артефакта через месяц никто не вспомнит, какой suite вернули аварийно.
Как проверить, что проблема устранена
Get-TlsCipherSuiteбез RC4/3DES/NULL.- Внешний/внутренний скан: слабые suite не предлагаются на 443/5986.
- Браузер Windows 11 24H2 открывает сайт, WinRM HTTPS с jump жив, LDAPS к
DC01жив. - Повторный скан через неделю, включая второй IP/SNI.
Сохраните ciphers-after.txt в заявку.
Если не помогло
- Скан бьёт в load balancer — правьте профиль там.
- Suite снова включились GPO vs локальный Disable: побеждает политика. Выровняйте.
- SQL/не-IIS порт не тот, что сканировали.
- Клиент .NET свой набор — SchUseStrongCrypto.
- Не возвращайте RC4 «для одного принтера» на DC.
Связь с hardening. RDP с интернета cipher не лечит — закройте 3389.
Профилактика
- Эталон cipher в золотом образе + GPO.
- Скан после каждого шаблона IIS.
- Закупка ПО с TLS 1.2 + современные suite.
- Документ «наш список suite» с датой review 2026-09-08 и ссылкой на Microsoft, не на форум.
FAQ
Disable-TlsCipherSuite сразу для всех хостов?
Нет. OU пилота. Schannel общий для многих ролей.
CBC suite — всегда запретить?
Многие сканеры просят GCM. CBC на TLS 1.2 ещё встречается. Режьте по политике риска и совместимости, не одной кнопкой «disable CBC» с блога.
ECC vs RSA сертификат
Набор suite зависит от типа ключа сертификата. Сменили сертификат на ECDSA — часть RSA-suite не используется. Планируйте вместе.
Нужен ли reboot после Enable обратно?
Часто процесс (lsass/HTTP.sys) держит набор. Reboot — надёжная проверка rollback.
Server 2025 отличается?
Набор по умолчанию уже жёстче. Всё равно снимите Get-TlsCipherSuite и скан, не верьте дефолту без проверки.
Можно ли править только IIS binding?
Шифры Schannel системные. Отдельного «только этот сайт без RC4, соседний с RC4» на одном Windows нет (кроме разных хостов/ADC).