Мастер: авто-синхронизация времени (ВНИИФТРИ) и доменные имена сервера

Шаг «Время и сеть»:
- Кнопка «Синхронизировать»: bj сам пробует российские серверы точного
  времени ВНИИФТРИ (мини-SNTP зонд по UDP/123), и только если из сети они
  недоступны — просит указать свой сервер (контроллер домена/маршрутизатор).
  Статус времени берётся из timedatectl (timeSynced), а не из флага шага.
- Поле «Доменное имя сервера»: имена вписываются в самоподписанный сертификат
  (SAN), чтобы интерфейс открывался по имени без предупреждения браузера.
  Сертификат перевыпускается на лету; A-запись заводит админ сети на DNS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XG3zNMMf2LMoDpXo22mwMX
This commit is contained in:
fontvielle
2026-10-16 15:15:09 +03:00
parent 33861d98d8
commit 2df7b0f54a
4 changed files with 202 additions and 3 deletions
+2
View File
@@ -223,6 +223,7 @@ func NewServer(cfg ServerConfig) (*Server, error) {
registerHTTPS(mux, rc) // HTTPS веб-интерфейса: перенаправление, свой сертификат
registerTime(mux, rc) // сервер времени (NTP)
registerTimeZone(mux) // часовой пояс сервера
registerHostname(mux, rc) // доменные имена сервера (сертификат HTTPS)
registerLetters(mux, rc) // готовые письма: НРД, ARQA, администратор DEPO
registerLKAPI(mux, rc, svc) // API для модуля личного кабинета клиента (bj-lk)
registerHealth(mux)
@@ -235,6 +236,7 @@ func NewServer(cfg ServerConfig) (*Server, error) {
registerChainTest(mux, rc, igwClient != nil) // «Проверить всю цепочку» (мастер, глава «Запуск»)
registerParticipantForm(mux, rc, igwClient, igwChannel) // анкета участника M2M (регистрация в НРД, participant_form.go)
registerClientProfile(mux, rc) // профиль клиента: выгрузка эталона и предзаполнение (client_profile.go)
registerTempPresentation(mux) // ВРЕМЕННО: скачивание презентации продукта (temp_download.go)
return &Server{
cfg: cfg,