{{define "content"}}
<div class="card">
  <h2>Криптография (АПК «Валидата Клиент L»)</h2>
  <p class="muted">bj-server общается с СКЗИ «Валидата Клиент L» через сайдкар <code>bj-crypto</code> по UDS <code>/run/bj/crypto.sock</code>. Чтобы подпись и проверка квитанций НРД заработали, нужен <strong>ключевой профиль</strong> — папка с тремя сущностями: <code>local.pse</code> (зашифрованный контейнер), <code>local.gdbm</code> (база сертификатов) и <code>vdkeys/*.vdk</code> (сам ключ).</p>
  <p class="muted"><strong>Архив от MOEX/НРД содержит «резервную копию», а не готовый профиль.</strong> На Linux рабочий <code>local.gdbm</code> нельзя восстановить headless — Валидата Linux требует GUI-операции «Восстановить справочники из резервной копии». Поэтому профиль готовится один раз на Windows и переносится на сервер через USB.</p>
</div>

<div class="card" style="border-left:4px solid var(--accent)">
  <h2>Почему профиль готовится на Windows, а не на сервере</h2>
  <p>Боевой Astra Linux SE-сервер с ГОСТ-криптографией <strong>обязан быть headless</strong>: чем меньше пакетов и поверхности атаки, тем проще сертификация ФСТЭК и тем меньше нарушений требований к контуру ЭДО НРД. Установка GUI (X-сервер, GTK, шрифты, VNC/RDP) тянет 50+ пакетов, расширяет surface attack и усложняет аудит — поэтому отказались.</p>
  <p>Это <strong>стандартная практика</strong> в фин-секторе: на admin-станции (под Windows или отдельной защищённой ВМ) генерируются и обновляются профили; на боевые серверы они доставляются готовыми через выделенный USB или защищённый канал. Все инструкции MOEX/НРД написаны именно под Windows — этот путь поддерживается официально.</p>
  <p class="muted">Альтернативный путь — Linux GUI через X11-forwarding или VNC на дев-стенды — допустим только в песочнице, не в проде. На боевых серверах <code>zcs</code>/<code>vdcsp_cfg</code> не должны запускаться.</p>
</div>

<div class="card" style="border-left:4px solid var(--ok)">
  <h2>✅ Подготовка профиля (Windows → USB → bj-server)</h2>

  <h3 style="margin-top:14px">Шаг A — на компьютере под Windows</h3>
  <ol>
    <li><strong>Установите СКЗИ Валидата CSP для Windows</strong>.<br>
      Скачайте дистрибутив с <a href="https://www.moex.com/s1292" target="_blank" rel="noopener">moex.com/s1292</a> (раздел «СКЗИ для Windows», файл «Валидата CSP v.6.0.482.0 64bit»). Внутри архива есть <code>Readme.txt</code> с регистрационными данными — введите их во время установки.
    </li>

    <li><strong>Распакуйте архив-профиль от MOEX/НРД</strong>.<br>
      Например <code>PrUser985.7z</code> с паролем <code>11</code> в папку <code>C:\moex-src\</code>. Получится структура:
      <pre style="font-size:12px">C:\moex-src\
  spr985\
    local.pse
    local.gdbm    ← это «резервная копия», на Linux не работает напрямую
  vdkeys\
    XXXXXXXXXXXXXXXX.vdk
  key.reg</pre>
    </li>

    <li><strong>Зарегистрируйте ключ в системе Windows</strong>.<br>
      Двойной клик по <code>key.reg</code> → «Да» на запрос о записи в реестр. Это нужно, чтобы Валидата увидела ключ при восстановлении справочников.
    </li>

    <li><strong>Откройте «Справочник сертификатов x64»</strong> из меню «Пуск» → «АПК Валидата Клиент».</li>

    <li><strong>Создайте профиль на флешке</strong>:
      <ul>
        <li>Вставьте чистую USB-флешку, запомните её букву (например <code>E:</code>).</li>
        <li>В Справочнике: меню <em>Профили</em> → <em>Настройка профилей</em> → <em>Добавить</em>.</li>
        <li>Имя профиля: например <code>moex</code>.</li>
        <li><strong>Каталог профиля</strong>: создайте новую пустую папку <strong>на флешке</strong>, например <code>E:\moex\</code>. Это путь, куда Валидата положит рабочую копию.</li>
      </ul>
    </li>

    <li><strong>Восстановите справочники из резервной копии</strong>:<br>
      Меню <em>Сервис</em> → <em>Восстановить справочники из резервной копии</em>. В диалоге укажите папку <code>C:\moex-src\spr985\</code>. Дождитесь сообщения «Справочники восстановлены».<br>
      После этого в <code>E:\moex\</code> появятся <code>local.pse</code> и <strong>рабочий</strong> <code>local.gdbm</code> (отличается от исходной резервной копии).
    </li>

    <li><strong>Скопируйте папку <code>vdkeys</code> на корень флешки</strong>.<br>
      Скопируйте папку <code>C:\moex-src\vdkeys\</code> в корень флешки. Итоговая структура:
      <pre style="font-size:12px">E:\
  moex\         ← рабочий профиль, созданный Валидатой
    local.pse
    local.gdbm  ← теперь правильный
  vdkeys\
    XXXXXXXXXXXXXXXX.vdk</pre>
    </li>

    <li><strong>Безопасно извлеките флешку</strong> через значок в системном трее Windows.</li>
  </ol>

  <h3 style="margin-top:18px">Шаг B — на сервере (этот веб-интерфейс)</h3>
  <ol>
    <li><strong>Вставьте флешку в сервер</strong> (физический USB-порт или прокинутая через гипервизор виртуальная флешка).</li>

    <li>Откройте <a href="/admin/setup">/admin/setup</a>. Через 2-3 секунды (автодетект монтирования) в блоке <strong>«Носители ключей»</strong> появится строка <code>🔌 USB /run/media/...</code>. Внутри неё — сабблок <strong>«Профиль Валидаты»</strong> с тремя строками: <code>local.pse</code> / <code>local.gdbm</code> / <code>*.vdk</code>.</li>

    <li>В поле <strong>«Имя профиля»</strong> введите осмысленное имя (например <code>moex</code>) и нажмите <strong>«Импортировать профиль в Валидату»</strong>.<br>
      Сервер скопирует файлы в <code>/var/lib/bj/profiles/&lt;имя&gt;/</code>, допишет секцию в <code>/opt/Validata/VDCSP/etc/pki1.conf</code>. Toast подтвердит: «Секция дописана в pki1.conf».</li>

    <li>В таблице <strong>«Импортированные профили Валидаты»</strong> ниже — нажмите <strong>«Активировать»</strong> в строке вашего профиля.<br>
      Toast: «Валидата: контекст с профилем &lt;имя&gt; инициализирован» → готово.</li>

    <li>Можно извлекать флешку — все нужные файлы уже скопированы в <code>/var/lib/bj/profiles/</code>.</li>
  </ol>

  <h3 style="margin-top:18px">Проверка</h3>
  <ol>
    <li>В блоке «СКЗИ» нажмите зелёную кнопку <strong>«✓ Проверить подключение СКЗИ»</strong>.</li>
    <li>Toast должен показать что-то вроде: <code>СКЗИ validata: 0.1.0 (Валидата: контекст с профилем «moex» инициализирован)</code>.</li>
  </ol>
</div>

<div class="card">
  <h2>Что делать если профиль на флешке не виден</h2>
  <ul>
    <li><strong>USB не монтируется автоматически в Astra Linux SE.</strong> Подключите вручную: посмотрите <code>lsblk</code>, потом <code>sudo mount /dev/sdb1 /mnt</code>. Через секунду «Носители ключей» подхватит точку монтирования.</li>
    <li><strong>Файлы лежат не в корне флешки.</strong> Сканер ищет в глубину 4 уровня — если поместили в <code>E:\very\deep\folder\moex\</code>, должно тоже найтись.</li>
    <li><strong>На флешке нет <code>vdkeys\</code>.</strong> Без неё профиль не работает — ключ <code>.vdk</code> обязателен.</li>
    <li><strong>«Ни контейнеров, ни сертификатов, ни профиля Валидаты не найдено».</strong> Это значит на носителе нет <em>одновременно</em> <code>.pse</code> и <code>.vdk</code> файлов. Перепроверьте Шаг 6-7 на Windows.</li>
  </ul>
</div>

<div class="card">
  <h2>Альтернатива: загрузка как ZIP-архив</h2>
  <p>Если USB-доступ к серверу неудобен — можно собрать содержимое флешки в обычный <code>.zip</code> на Windows и загрузить через web-форму.</p>
  <ol>
    <li>После шага A.7 (когда на флешке готовая структура <code>moex\</code> + <code>vdkeys\</code>) — выделите обе папки, правый клик → <em>Отправить</em> → <em>Сжатая ZIP-папка</em>.</li>
    <li>На сервере: <a href="/admin/setup">/admin/setup</a> → «Носители ключей» → форма «Загрузить образ или архив» → выберите ZIP, поле «Пароль» оставьте пустым.</li>
    <li>Дальше как в Шаге B со 2-го пункта.</li>
  </ol>
  <p class="muted">Под капотом сервер распаковывает архив через <code>7z</code> в <code>/var/lib/bj/media/iso/</code>, сканирует на профиль Валидаты — далее всё то же самое, что с USB.</p>
</div>

<div class="card">
  <h2>Справочные команды (диагностика)</h2>
  <table>
    <tbody>
      <tr><td><code>systemctl status bj-crypto</code></td><td>Состояние Java-сайдкара (UDS-сокет, провайдер).</td></tr>
      <tr><td><code>sudo journalctl -u bj-crypto -n 50</code></td><td>Последние строки лога сайдкара.</td></tr>
      <tr><td><code>cat /opt/Validata/VDCSP/etc/pki1.conf</code></td><td>Список профилей, которые видит Валидата (наши секции помечены <code># --- bj-server: профиль ...</code>).</td></tr>
      <tr><td><code>sudo ls -la /var/lib/bj/profiles/</code></td><td>Импортированные профили на сервере.</td></tr>
      <tr><td><code>/opt/Validata/VDCSP/bin/amd64/testcsp -silent</code></td><td>Базовая проверка провайдера CSP.</td></tr>
    </tbody>
  </table>
</div>

<div class="card">
  <h2>Установка Валидаты на сервер (если её ещё нет)</h2>
  <p class="muted">Если этот раздел вам не показывает «✓ ready» — повторите установку:</p>
  <pre>curl -fsSL https://fs.moex.com/cdp/po/ClientL_ALSE.zip -o ClientL_ALSE.zip
unzip ClientL_ALSE.zip
sudo apt-get install -y libccid pcscd execstack
sudo dpkg -i ClientL_ALSE/zpki-*.deb ClientL_ALSE/zsdk-*.deb
sudo apt-get -f install -y
sudo execstack -c /opt/Validata/VDCSP/lib/amd64/libvdcsp.so
sudo systemctl enable --now pcscd</pre>
  <p class="muted">Дистрибутив для Astra Linux SE — <a href="https://fs.moex.com/cdp/po/ClientL_ALSE.zip" target="_blank" rel="noopener">fs.moex.com/cdp/po/ClientL_ALSE.zip</a>. Linux-версия отдельной лицензии не требует.</p>
</div>
{{end}}
