﻿============================================================
 ВОССТАНОВЛЕНИЕ СИСТЕМНОГО TLS (Schannel) В WINDOWS
============================================================

ЗАЧЕМ ЭТО

Программа MarketLite не может соединиться с интернетом, при этом
браузер работает. Причина найдена, и она не в MarketLite.

Сторонний криптографический модуль прописал себя в системный список
пакетов безопасности Windows и занял место системного TLS. У вас это
КриптоПро CSP (модуль cpsspap); бывает то же самое от ViPNet/InfoTeCS
(модули itcssp или sspp).

После этого программы Windows не могут получить системный пакет
«Microsoft Unified Security Protocol Provider» и падают с ошибкой:
«Затребованный пакет безопасности не существует».

Это касается ВСЕХ программ: MarketLite, PowerShell, Windows Update,
Outlook, curl. Браузеры работают, потому что у них свой механизм
шифрования, а не системный Windows. Поэтому браузер открывает сайты,
а программа — нет.

ЭТО НЕ ПРОБЛЕМА MARKETLITE.


ВАЖНО: КРИПТОПРО ОСТАЁТСЯ НА МЕСТЕ

Ремонт НЕ удаляет и НЕ переустанавливает КриптоПро. Он только убирает
лишнюю запись из системного списка пакетов и возвращает системный TLS.

Что продолжает работать как раньше:
  - электронная подпись (ЭП) — она работает через сам КриптоПро CSP;
  - вход на сайты по сертификату, в том числе «Честный знак» — им нужен
    КриптоПро и плагин в браузере, а не этот системный модуль;
  - сертификаты, ключи, носители.

Что может измениться:
  - ГОСТ-TLS (шифрование по ГОСТу) для программ Windows — например,
    госпорталы через системные приложения. Браузеры (Яндекс Браузер,
    Chromium-Gost) несут свой механизм шифрования и обычно продолжают
    работать; но обещать не будем — проверим после ремонта.
  - Если ГОСТ-TLS понадобится: обновите КриптоПро CSP до актуальной
    версии (5.0 R3 или новее). Свежие версии этой ошибки не допускают,
    и ГОСТ-TLS остаётся на месте.

Любое изменение можно отменить: перед ремонтом сохраняется копия
реестра (файл LSA-backup-*.reg). Двойной щелчок по нему возвращает
всё как было.


ЧТО ДЕЛАТЬ

ШАГ 1. Проверка (безопасно, ничего не меняет)
    Запустить:  tls-check.bat
    Отчёт TLS-REPORT-*.txt появится рядом со скриптом и на Рабочем
    столе. Пришлите его полностью.

ШАГ 2. Ремонт (вносит изменения)
    Запустить:  tls-fix-admin.bat
    Windows запросит права администратора — нажать «Да».
    Затем ПЕРЕЗАГРУЗИТЬ компьютер.

ШАГ 3. Проверка после перезагрузки
    Снова запустить tls-check.bat и прислать отчёт.


ЧТО ИМЕННО ДЕЛАЕТ РЕМОНТ

  1. Сохраняет резервную копию ветки реестра в файл LSA-backup-*.reg
     (двойной щелчок по нему возвращает всё как было).
  2. Убирает из списка ТОЛЬКО стороннюю запись. Штатный маркер Windows
     (значение "") остаётся на месте — итог совпадает с исправной системой.
     Другие записи списка не трогаются.
  3. Если правок в реестре не требуется — проверяет целостность
     системных файлов (sfc) и восстанавливает образ системы (DISM).
  4. Проверяет TLS заново.

Перезагрузку скрипт НЕ делает сам — только предлагает.


ВАЖНО

  * Без перезагрузки правка не заработает: список пакетов
    безопасности читается один раз при запуске системы.
  * КриптоПро CSP при этом НЕ удаляется. Сертификаты и электронные
    подписи продолжают работать как раньше.
  * Если позже будете обновлять или переустанавливать КриптоПро — ставьте
    его с параметром NOSSPAP=1:  CryptoPro-5.0.xxxxx.exe -cspargs "NOSSPAP=1"
    Это штатный ключ вендора («не устанавливать поддержку ГОСТ TLS (SSP/AP)»),
    иначе модуль снова займёт место системного TLS. На электронную подпись
    он не влияет.
  * Файлы .ps1 не редактировать: они в кодировке UTF-8 с BOM,
    иначе PowerShell прочитает кириллицу неправильно.


ЕСЛИ ЧТО-ТО ПОШЛО НЕ ТАК

Вернуть как было — двойной щелчок по файлу LSA-backup-*.reg
(он лежит рядом со скриптами), затем перезагрузка.

Если после перезагрузки интернет всё ещё не работает —
пришлите отчёт TLS-FIX-*.txt.

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