Первичная настройка, часть 4: HTTPS веб-интерфейса (:8443, самоподписанный сертификат на имя и адреса сервера, свой сертификат, перенаправление браузера с HTTP); сервер времени из настроек (ntpd/chrony/timesyncd — bj-system-admin); постоянный адрес — bj-network (netplan try с откатом), вопрос при первой загрузке с образа; раздел «Сервер: HTTPS, время, сеть»; HTTPS в итоговой проверке; адреса https:// на экране установщика и консоли

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
zuevav
2026-10-05 16:43:23 +03:00
parent 4332e3309b
commit 765d7b5994
17 changed files with 582 additions and 26 deletions
+2 -1
View File
@@ -10,10 +10,11 @@ SETUP=/var/lib/bj/.bj/setup.json
USERS=/var/lib/bj/.bj/users.json
FIRSTRUN=/var/lib/bj/.bj/first-run.json
PORT=8080
TLSPORT=8443 # веб-вход по HTTPS (сертификат сервера — браузер попросит подтвердить исключение)
HOST=$(hostname 2>/dev/null || echo bj)
ADDRS=$(ip -4 -o addr show scope global 2>/dev/null | awk '{split($4,a,"/"); print a[1]}' | tr '\n' ' ')
[ -z "$ADDRS" ] && ADDRS="<адрес не получен: проверьте сеть>"
url() { for a in $ADDRS; do case "$a" in \<*) printf ' http://%s:%s%s\n' "<IP сервера>" "$PORT" "$1";; *) printf ' http://%s:%s%s\n' "$a" "$PORT" "$1";; esac; done; }
url() { for a in $ADDRS; do case "$a" in \<*) printf ' https://%s:%s%s\n' "<IP сервера>" "$TLSPORT" "$1";; *) printf ' https://%s:%s%s\n' "$a" "$TLSPORT" "$1";; esac; done; }
lic=""
if [ -r "$SETUP" ]; then
lic=$(python3 - "$SETUP" 2>/dev/null <<'PY'