3e34995e69
После реальной установки на 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>
131 lines
9.7 KiB
HTML
131 lines
9.7 KiB
HTML
{{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}}
|