{{define "content"}}
<p style="margin-bottom:16px"><a href="/admin/help">← все инструкции</a></p>

<div class="card">
  <h2>КриптоПро и Рутокен</h2>
  <p class="muted">Bridge-and-Join-s использует ГОСТ Р 34.10-2012 для подписи и проверки XMLDSig. Серверная криптография — КриптоПро CSP. Подпись оператора в admin-ui — Рутокен ЭЦП 2.0 (опционально). Оба продукта говорят со стандартным интерфейсом PKCS#11, поэтому Go-клиент общается с ними одинаково.</p>
</div>

<div class="card">
  <h2>1. Что и зачем нужно</h2>
  <table>
    <thead><tr><th>Сценарий</th><th>СКЗИ</th><th>Цена (ориентир)</th></tr></thead>
    <tbody>
      <tr><td>Проверка XMLDSig входящих от НРД и брокеров</td><td>КриптоПро CSP «Сервер»</td><td>~30-50к ₽ (один раз)</td></tr>
      <tr><td>Подпись пакетов в НРД (резервный канал WS ONYX)</td><td>КриптоПро CSP «Сервер»</td><td>включено</td></tr>
      <tr><td>Подпись действий оператора в admin-ui</td><td>Рутокен ЭЦП 2.0 + лицензия CSP «Рабочее место»</td><td>~3-5к ₽ железо + ~2-3к ₽ лицензия</td></tr>
      <tr><td>Проверка XMLDSig заявлений от ЛК</td><td>КриптоПро CSP «Сервер»</td><td>включено</td></tr>
    </tbody>
  </table>
  <p class="muted">Если используется Интеграционный шлюз НРД (ИШ), он сам подписывает пакеты — наша серверная подпись нужна только для резервного канала ONYX и подписи действий оператора. Можно начать с минимума: только Рутокен оператора и отложить серверную лицензию.</p>
</div>

<div class="card">
  <h2>2. Установка КриптоПро CSP на РЕД ОС (проверено)</h2>
  <p><strong>Способ 1 — через веб-интерфейс (рекомендуется):</strong> <a href="/admin/setup">/admin/setup</a> → «СКЗИ» → «Установка КриптоПро CSP» → выбрать <code>linux-amd64.tar</code> с cryptopro.ru → «Загрузить и установить».</p>
  <p><strong>Способ 2 — вручную из терминала.</strong> Скачать <code>linux-amd64.tgz</code> с <code>www.cryptopro.ru/products/csp/downloads</code> (доступ через личный кабинет), распаковать на ВМ и установить минимальный набор:</p>
  <pre>tar -xzf linux-amd64.tgz
cd linux-amd64
sudo rpm -Uvh --replacepkgs --nodeps \
    lsb-cprocsp-base-5.0.*.noarch.rpm \
    lsb-cprocsp-ca-certs-5.0.*.noarch.rpm \
    lsb-cprocsp-rdr-64-5.0.*.x86_64.rpm \
    lsb-cprocsp-capilite-64-5.0.*.x86_64.rpm \
    lsb-cprocsp-kc1-64-5.0.*.x86_64.rpm \
    lsb-cprocsp-pkcs11-64-5.0.*.x86_64.rpm \
    cprocsp-curl-64-5.0.*.x86_64.rpm \
    cprocsp-rdr-gui-gtk-64-5.0.*.x86_64.rpm</pre>
  <p>Ключевые пакеты:</p>
  <ul>
    <li><code>lsb-cprocsp-base</code> + <code>lsb-cprocsp-rdr-64</code> — базовая инфраструктура</li>
    <li><code>lsb-cprocsp-capilite-64</code> — CAPILite (<code>libcapi20.so.4</code>, <code>libcpext.so.4</code>) — иначе libcppkcs11.so не загрузится</li>
    <li><code>lsb-cprocsp-kc1-64</code> — CSP класса КС1 (без него Initialize упадёт с CKR_FUNCTION_FAILED)</li>
    <li><code>lsb-cprocsp-pkcs11-64</code> — собственно <code>libcppkcs11.so</code></li>
  </ul>
  <p>Демо-лицензия на 3 месяца встроена в дистрибутив, отдельная активация не требуется. Проверка:</p>
  <pre>/opt/cprocsp/sbin/amd64/cpconfig -license -view
/opt/cprocsp/bin/amd64/csptest -keyset -enum -unique</pre>
  <p><strong>Важно — LD_LIBRARY_PATH.</strong> КриптоПро CSP кладёт .so в <code>/opt/cprocsp/lib/amd64</code> без записи в <code>/etc/ld.so.conf.d</code>. Bj-server при запуске должен иметь:</p>
  <pre>Environment=LD_LIBRARY_PATH=/opt/cprocsp/lib/amd64</pre>
  <p>В systemd-юните это уже прописано (<code>deploy/systemd/bj-server.service</code>). При ручном запуске из shell — <code>LD_LIBRARY_PATH=/opt/cprocsp/lib/amd64 ./bin/bj-server</code>.</p>
  <p><strong>Активация коммерческой лицензии.</strong> После того как демо истечёт, серийник вводится через UI на <a href="/admin/setup">/admin/setup</a> → «Активация лицензии», или вручную:</p>
  <pre>sudo /opt/cprocsp/sbin/amd64/cpconfig -license -set XXXX-XXXXX-XXXXX-XXXXX-XXXXX</pre>
</div>

<div class="card">
  <h2>3. Установка на Ubuntu / Debian</h2>
  <pre>sudo dpkg -i cprocsp-rdr-gui-gtk-64_5.0.*_amd64.deb \
             cprocsp-rdr-64_5.0.*_amd64.deb \
             lsb-cprocsp-base_5.0.*_all.deb \
             lsb-cprocsp-rdr-64_5.0.*_amd64.deb
sudo apt-get install -f
sudo /opt/cprocsp/sbin/amd64/cpconfig -license -set XXXX-XXXXX-XXXXX-XXXXX-XXXXX</pre>
</div>

<div class="card">
  <h2>4. PKCS#11 модуль</h2>
  <p>Путь к библиотеке после установки:</p>
  <pre>/opt/cprocsp/lib/amd64/libcppkcs11.so</pre>
  <p>Эта же библиотека работает и с CSP-ключами (контейнеры на диске или в реестре), и с Рутокен ЭЦП 2.0 (подключённым по USB или в виде smart-card reader).</p>
  <p>На <a href="/admin/setup">странице «Настройка»</a> в карточке «Криптография» укажите:</p>
  <ul>
    <li><strong>Провайдер</strong>: <code>cryptopro</code></li>
    <li><strong>UDS-сокет</strong>: <code>/run/bj/crypto.sock</code> (для legacy crypto-service на Java — на M2+ переходим на Go-клиент напрямую через PKCS#11)</li>
    <li><strong>Путь к jcp.jar / PKCS#11</strong>: <code>/opt/cprocsp/lib/amd64/libcppkcs11.so</code></li>
    <li><strong>Лицензионный ключ</strong>: серийный номер CSP</li>
  </ul>
</div>

<div class="card">
  <h2>5. Подключение Рутокен ЭЦП 2.0</h2>
  <p>Подключите Рутокен в USB. Драйверы КриптоПро CSP уже включают поддержку Рутокен:</p>
  <pre># увидеть подключённые токены
/opt/cprocsp/bin/amd64/csptest -card -enum

# увидеть ключевые контейнеры на токене
/opt/cprocsp/bin/amd64/csptest -keyset -enum -unique</pre>
  <p>Для подписи действий оператора в admin-ui:</p>
  <ol>
    <li>Запросить сертификат на физлицо у УЦ (через личный кабинет КриптоПро или через АРМ оператора УЦ).</li>
    <li>Записать сертификат и контейнер на Рутокен.</li>
    <li>На <a href="/admin/setup">странице «Настройка»</a> в карточке «Криптография» выбрать провайдер <code>cryptopro</code> и указать слот Рутокен.</li>
  </ol>
</div>

<div class="card">
  <h2>6. Импорт сертификата</h2>
  <pre># сертификат корневого УЦ (если ещё нет в системе)
/opt/cprocsp/bin/amd64/certmgr -inst -store mroot -file /path/to/root-ca.cer

# сертификат подписанта (контейнер на токене)
/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\\.\HDIMAGE\my-keys' \
    -file /path/to/operator.cer

# проверить установленные сертификаты
/opt/cprocsp/bin/amd64/certmgr -list -store uMy</pre>
</div>

<div class="card">
  <h2>7. Тестирование подписи</h2>
  <p>Через CLI КриптоПро (быстрая проверка что криптография работает):</p>
  <pre># подписать произвольный файл
/opt/cprocsp/bin/amd64/cryptcp -signf -dn 'CN=Иванов И.И.' \
    -det -strict /tmp/test.txt

# проверить подпись
/opt/cprocsp/bin/amd64/cryptcp -vsignf -det /tmp/test.txt /tmp/test.txt.sgn</pre>
  <p>Через нашу систему — раздел <a href="/admin/setup">Настройка</a> → кнопка «Запустить тестовую заявку». На странице «Заявка» появится результат и расшифровка проверки подписи.</p>
</div>

<div class="card">
  <h2>8. Поддержка</h2>
  <ul>
    <li>Документация КриптоПро: <code>www.cryptopro.ru/products/csp</code></li>
    <li>Установка на РЕД ОС: <code>www.cryptopro.ru/forum2/default.aspx?g=topics&f=43</code></li>
    <li>Технические вопросы: <code>support@cryptopro.ru</code></li>
    <li>Рутокен: <code>dev.rutoken.ru/display/PUB/Rutoken+EDS</code></li>
  </ul>
  <p class="muted">При проблемах с лицензией сначала проверьте <code>cpconfig -license -view</code> — лицензия должна быть валидна и не просрочена. Срок действия КриптоПро лицензии — обычно 1 год.</p>
</div>
{{end}}
