Индикатор «Шлюз НРД», проверка ключа ИШ, папки шлюза по сети, сотрудники из домена, переключатель QUIK в настройках
- журнал ИШ: номер процесса выравнивается пробелами — опросы НРД не распознавались (серый индикатор) - «Проверить СКЗИ и ключ»: Валидата, датчик случайных чисел, подпись профилем ИШ (а не старый bj-crypto); индикатор «Криптографии» — по готовности ключа; карточка автозагрузки УЦ — только для разработки - шаг «Шлюз НРД»: папки обмена по сети (Samba): логин/пароль, ручная настройка не трогается - «Учётные записи»: необязательно — подключить домен, проверить связь, найти сотрудника и добавить с ролью; роль из bj действует, пока группы домена с ролями не сопоставлены - настройка QUIK МНП: «Только чтение / Чтение и запись», тонкая настройка цикла свёрнута - индикатор «Обновления» — только когда есть что обновить; «Мастер настройки» в меню и в настройках Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -429,6 +429,35 @@ func (h *setupHandlers) checkCrypto(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
s := h.rc.Snapshot()
|
||||
// Подписывает документы для НРД шлюз (ИШ) профилем Валидаты, который создал шаг «Ключ подписи»: проверяем
|
||||
// именно его — версия СКЗИ, датчик случайных чисел, подпись проверочного документа этим профилем.
|
||||
if !devMode(h.rc) || igateInstalled() {
|
||||
ctx, cancel := context.WithTimeout(r.Context(), 2*time.Minute)
|
||||
defer cancel()
|
||||
ver, _, _ := validataVersion(ctx)
|
||||
if ver == "" {
|
||||
setupFlash(w, r, "СКЗИ «Валидата» на сервере не найдена — её ставит установщик bj")
|
||||
return
|
||||
}
|
||||
res, err := runKeymediaOp(ctx, "keycheck", map[string]string{"channel": contourChannel(contourOf(s.NSD.Profile))})
|
||||
if err != nil {
|
||||
setupFlash(w, r, "СКЗИ «Валидата» "+ver+": ключ не проверен — "+err.Error())
|
||||
return
|
||||
}
|
||||
prof, _ := res["profile"].(string)
|
||||
kc, _ := res["keycheck"].(string)
|
||||
rng := "датчик случайных чисел готов"
|
||||
if res["rng"] == "false" {
|
||||
rng = "датчик случайных чисел не инициализирован (шаг «Ключ подписи»)"
|
||||
}
|
||||
if kc == "ok" {
|
||||
setupFlash(w, r, "✓ СКЗИ «Валидата» "+ver+", "+rng+"; ключ организации (профиль ИШ «"+prof+"») подписывает проверочный документ")
|
||||
return
|
||||
}
|
||||
diag, _ := res["keydiag"].(string)
|
||||
setupFlash(w, r, "✗ СКЗИ «Валидата» "+ver+", "+rng+"; ключ профиля «"+prof+"» не подписывает: "+strings.TrimPrefix(kc, "fail: ")+prefixed(". ", diag))
|
||||
return
|
||||
}
|
||||
cli := cryptocli.New(cryptocli.Config{
|
||||
Provider: cryptocli.Provider(s.Crypto.Provider),
|
||||
SocketPath: s.Crypto.SocketPath,
|
||||
|
||||
Reference in New Issue
Block a user