Files
Bridge-and-Join-s/internal/lkgateway/web/templates/admin_help_cryptopro.html
T
fontvielle 3e34995e69 docs(cryptopro): инструкция установки CSP по реальному опыту + LD_LIBRARY_PATH в systemd
После реальной установки на dev-ВМ выяснилось:
- Минимальный набор rpm-пакетов для работы PKCS#11 — 8 штук, в т.ч.
  lsb-cprocsp-capilite-64 (libcapi20.so.4) и lsb-cprocsp-kc1-64
  (CSP уровня КС1). Без kc1 Initialize() возвращает CKR_FUNCTION_FAILED.
- КриптоПро не пишет /etc/ld.so.conf.d, поэтому Go-клиент cryptocli
  не находит libcppkcs11.so. Решение — LD_LIBRARY_PATH=/opt/cprocsp/lib/amd64
  в окружении bj-server.
- Демо-лицензия на 3 месяца встроена в дистрибутив — отдельная
  активация не требуется до истечения.

deploy/systemd/bj-server.service:
- добавлена Environment=LD_LIBRARY_PATH=/opt/cprocsp/lib/amd64
  с пояснением в комментарии

internal/lkgateway/web/templates/admin_help_cryptopro.html:
- секция «Установка КриптоПро CSP на РЕД ОС» полностью переписана:
  - две команды: через UI (рекомендуется) и через rpm вручную
  - полный список 8 нужных пакетов с пояснением каждого
  - предупреждение про LD_LIBRARY_PATH и команда для запуска из shell
  - информация про демо-лицензию (94 дня встроены)

internal/lkgateway/setup.go:
- if-else цепочка распаковки заменена на switch (gocritic lint)

Проверено: после установки kc1 веб-кнопка «Проверить подключение СКЗИ»
показывает «Доступно токенов: 1. Криптография готова к работе.
(PKCS#11 v2.11, cryptopro.ru). Токены: CryptoPro Token (CPPKCS 3)».

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 15:21:08 +03:00

131 lines
9.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{{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}}