feat(admin): загрузка дистрибутива КриптоПро через UI + активация лицензии
В карточке «СКЗИ» страницы /admin/setup добавлены два новых блока: 1. «Установка КриптоПро CSP» — multipart-форма с input type=file. Принимает .tar/.tgz/.tar.gz/.rpm (формат с cryptopro.ru). После загрузки на сервер (лимит 256 МБ): - сохраняет архив в /tmp/bj-cryptopro/ - распаковывает (tar -xzf или tar -xf) - находит все .rpm в распакованной директории - выполняет sudo rpm -Uvh --replacepkgs --nosignature на найденные пакеты - возвращает результат с количеством установленных пакетов и выводом rpm 2. «Активация лицензии» — поле для ввода серийника и кнопка. Вызывает /opt/cprocsp/sbin/amd64/cpconfig -license -set <серийник>. Если cpconfig не найден — показывает подсказку про /admin/help/cryptopro. После успеха сохраняет серийник в runtime-конфиге. internal/lkgateway/setup.go: - handler installCryptoPro (multipart form, parse, untar, find rpms, sudo rpm) - handler activateLicense (cpconfig -license -set, сохранение в RuntimeConfig) - общие хелперы runCmd / runCmdInDir для exec через context internal/lkgateway/web/templates/admin_setup.html: - секция «Установка КриптоПро CSP» с формой загрузки - секция «Активация лицензии» с полем + кнопкой - ссылки на /admin/help/cryptopro и cryptopro.ru/products/csp/downloads Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -80,6 +80,22 @@
|
||||
<button type="submit" class="btn" style="background:var(--border);color:var(--text);border:none;padding:8px 16px;border-radius:4px">Проверить подключение СКЗИ</button>
|
||||
<span class="muted" style="margin-left:8px">Загрузит PKCS#11 модуль, опросит список токенов, покажет результат сверху страницы.</span>
|
||||
</form>
|
||||
|
||||
<hr style="margin:18px 0;border:none;border-top:1px solid var(--border)">
|
||||
<h3 style="font-size:14px;margin:0 0 8px">Установка КриптоПро CSP</h3>
|
||||
<p class="muted">Дистрибутив с <a href="https://www.cryptopro.ru/products/csp/downloads" target="_blank" rel="noopener">cryptopro.ru</a> (например, <code>linux-amd64.tgz</code> или <code>linux-amd64.tar</code> для РЕД ОС/ALT/ROSA). Загрузите файл здесь — он будет распакован и установлен через <code>sudo rpm -Uvh</code>. Установка длится ~30 секунд.</p>
|
||||
<form method="post" action="/admin/setup/crypto/install" enctype="multipart/form-data" style="margin-top:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap">
|
||||
<input type="file" name="dist" accept=".tar,.tgz,.gz,.rpm" required style="padding:6px;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;flex:1;min-width:300px">
|
||||
<button type="submit" class="btn" style="background:var(--accent);color:white;border:none;padding:8px 16px;border-radius:4px">Загрузить и установить</button>
|
||||
</form>
|
||||
|
||||
<hr style="margin:18px 0;border:none;border-top:1px solid var(--border)">
|
||||
<h3 style="font-size:14px;margin:0 0 8px">Активация лицензии</h3>
|
||||
<form method="post" action="/admin/setup/crypto/activate" style="margin-top:6px;display:flex;gap:8px;align-items:center;flex-wrap:wrap">
|
||||
<input type="text" name="license_key" value="{{.Settings.Crypto.LicenseKey}}" placeholder="XXXX-XXXXX-XXXXX-XXXXX-XXXXX (серийный номер КриптоПро CSP)" style="padding:8px;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;font-family:monospace;font-size:12px;min-width:340px">
|
||||
<button type="submit" class="btn" style="background:var(--ok);color:#0a0f1a;border:none;padding:8px 16px;border-radius:4px;font-weight:600">Активировать лицензию</button>
|
||||
</form>
|
||||
<p class="muted" style="margin-top:8px">Вызовет <code>cpconfig -license -set</code> и сохранит серийник. Если КриптоПро CSP ещё не установлен — покажет инструкцию.</p>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user