{{/* Установка ключа Валидаты: загрузка архива НРД → носитель → справочник → проверка ИШ. Один и тот же блок — на шаге «Ключ подписи» мастера и на отдельной странице /admin/setup/keywizard (данные — keyWizardData). */}} {{define "keyWizRet"}}{{if .InWizard}}{{end}}{{if .WantContour}}{{end}}{{end}} {{define "keyWizBody"}} {{$s := .State}} {{/* ===== Датчик случайных чисел Валидаты: один раз для сервера, до первой работы с ключом (validatarng.go) ===== */}} {{if not $s.Done}} {{end}}
{{/* ===== Лента шагов — когда путь выбран (флешка с ключом или новая флешка из архива) ===== */}} {{if or $s.StagingID $s.Done}} {{if $s.Done}}
Как прошла установка — {{len $s.Steps}} этапов{{end}}
    {{range $i, $step := $s.Steps}}
  1. {{if eq $step.Status "ok"}}✓{{else if eq $step.Status "error"}}{{else}}{{add $i 1}}{{end}}
    {{$step.Title}}
    {{if $step.Detail}}
    {{$step.Detail}}
    {{end}}
  2. {{end}}
{{if $s.Done}}
{{end}} {{/* ===== Действие в зависимости от состояния ===== */}} {{end}} {{if $s.Done}}
Ключ подключён и подписывает

{{if $s.MediaDevice}}Флешка с ключом подключена к шлюзу НРД как есть — на неё ничего не записывалось.{{else}}Ключ записан на флешку, справочник сертификатов сформирован, шлюз НРД подписывает им документы.{{end}} Флешка должна оставаться в сервере: без неё шлюз не запустится.

{{if $s.Backup}}

Копия прежнего содержимого флешки: {{$s.Backup}}

{{end}}
{{if devOn}}
{{else if not .InWizard}}→ Вернуться в мастер настройки Проверить подключения{{end}}
{{template "keyWizRet" .}}
{{else if and $s.StagingID $s.MediaDevice}} {{/* ключ с подготовленной флешки — используется как есть, на флешку ничего не пишется */}}

Шаг 2 — использовать ключ с флешки

На флешке уже подготовленный ключ: {{fallbackTpl $s.VDK "—"}}{{if $s.MediaProfile}}, профиль {{$s.MediaProfile}}{{end}}. bj подключит его к шлюзу НРД как есть: на флешку ничего не записывается — справочник для ИШ собирается на диске сервера, флешка подключается только для чтения.

{{template "keyWizRet" .}} {{$c := .SuggestContour}}{{if not $c}}{{$c = .WantContour}}{{end}}{{if not $c}}{{$c = currentContour}}{{end}} {{if .WantContour}}

Контур НРД: {{if eq .WantContour "prod"}}Боевой{{else}}Тестовый TEST3{{end}} — выбран в мастере{{if and .SuggestContour (ne .SuggestContour .WantContour)}}
⚠ по сертификату ключ похож на {{if eq .SuggestContour "test3"}}тестовый{{else}}боевой{{end}} — проверьте выбор{{end}}

{{end}}
{{if not .WantContour}}{{end}} {{if .SuggestIssuer}}

Сертификат от «{{.SuggestIssuer}}» — это {{if eq .SuggestContour "test3"}}тестовый{{else}}боевой{{end}} контур.

{{end}}
{{template "keyWizRet" .}}
{{else if $s.StagingID}} {{/* Архив загружен — выбор флешки + запись */}}

Шаг 2 — вставьте новую флешку и запишите ключ

Архив распакован. Ключ: {{fallbackTpl $s.VDK "—"}}. Вставьте в сервер чистую флешку — на неё запишется ключ и справочник сертификатов, затем bj подключит её к шлюзу и перезапустит ИШ. Копия прежнего содержимого флешки сохраняется на сервере. Не используйте флешку с рабочим ключом другого сервера.

{{if not .Drives}}

Флешка не найдена — вставьте её в сервер и обновите страницу.

{{else}}
{{template "keyWizRet" .}}
{{if .Drives}} {{range $i, $d := .Drives}} {{end}} {{end}}
{{$c := .SuggestContour}}{{if not $c}}{{$c = .WantContour}}{{end}}{{if not $c}}{{$c = currentContour}}{{end}} {{if .SuggestIssuer}}

В архиве сертификат от «{{.SuggestIssuer}}» — это {{if eq .SuggestContour "test3"}}тестовый{{else}}боевой{{end}} ключ.

{{end}} У тестового и боевого контуров разные ключи: ключ подключается только к каналу ИШ своего контура.
Пусто = имя берётся из архива автоматически.
{{end}}
{{template "keyWizRet" .}}
{{else}} {{/* Начало: где ключ — на подготовленной флешке или в архиве НРД (тогда — на новую флешку) */}}

Где ваш ключ?

Что должно быть на флешке
  • Ключ Валидаты — файл *.vdk (обязательно; без него флешку не примет).
  • Справочник сертификатов — папка с файлами local.gdbm и local.pse (оба обязательны). Имя папки любое — spr1046, LAP_NEW и т. п.; bj ищет эти файлы по имени в любой папке флешки.
  • Необязательно: файлы отзыва *.crl; из архива НРД также key.reg и папка vdkeys/ — их наличие не требуется.

Раскладка любая: как в архиве НРД (key.reg + папка справочника + vdkeys/*.vdk) или произвольно — bj сам находит *.vdk и local.gdbm/local.pse в любой папке. Флешка FAT32/exFAT/NTFS или ext, подключается только на чтение.

{{if .Drives}}
{{template "keyWizRet" .}}

Флешка с ключом:

{{range $i, $d := .Drives}} {{end}}
{{else}}

Флешка не найдена. Вставьте флешку с ключом в сервер и нажмите «Перепроверить флешку».

Если сервер — виртуальная машина (VMware/ESXi/Hyper-V), USB-носитель нужно сначала пробросить в гостя (в настройках ВМ подключить USB-устройство). Без проброса флешка в сервере не появляется. USB 3.0-флешке нужен контроллер USB 3.1 (xHCI) в настройках ВМ — на контроллере USB 2.0 она может не пробрасываться (в lsusb её не видно); смените контроллер на USB 3.1, переподключите устройство и перезагрузите ВМ.

{{end}}
{{end}}
{{end}}