version 1.2.1: авто-SSL при установке, кнопка перезапуска панели

- install-panel.sh: самоподписной сертификат создаётся автоматически при установке, панель сразу работает по HTTPS
- app.py: API /api/panel/restart для перезапуска панели
- index.html: кнопка «Перезапустить панель» на вкладке SSL
- mita-ctl.sh: автоопределение http/https (_panel_proto) для URL панели
- README: обновлена дорожная карта
This commit is contained in:
2026-06-26 23:44:53 +03:00
parent 1f5511a41a
commit 667a0957ac
5 changed files with 84 additions and 13 deletions
+31 -5
View File
@@ -236,11 +236,36 @@ elif command -v iptables &>/dev/null; then
ok "iptables: порт $PANEL_PORT открыт"
fi
# ── авто-генерация самоподписного сертификата ─────────────────────
section "SSL-сертификат"
SSL_DIR="/etc/mita/ssl"
mkdir -p "$SSL_DIR"
SSL_CERT="$SSL_DIR/selfsigned.crt"
SSL_KEY="$SSL_DIR/selfsigned.key"
info "Создание самоподписного сертификата (10 лет)..."
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
-keyout "$SSL_KEY" -out "$SSL_CERT" \
-subj "/CN=mita-panel/O=mita/C=XX" 2>/dev/null
echo "SSL_CERT=$SSL_CERT" >> /etc/mita/panel.env
echo "SSL_KEY=$SSL_KEY" >> /etc/mita/panel.env
python3 -c "
import json
with open('$PANEL_CONFIG') as f: d=json.load(f)
d.update({'ssl_type':'selfsigned','ssl_cert':'$SSL_CERT','ssl_key':'$SSL_KEY'})
with open('$PANEL_CONFIG','w') as f: json.dump(d,f,indent=2)
"
systemctl restart mita-panel 2>/dev/null || true
ok "Самоподписной сертификат установлен, панель перезапущена с HTTPS"
PROTO="https"
# ── итог ──────────────────────────────────────────────────────────
section "Установка завершена!"
SERVER_IP=$(curl -s --max-time 5 ifconfig.me 2>/dev/null || hostname -I | awk '{print $1}')
PROTO="http"
echo ""
echo -e "${GREEN}╔══════════════════════════════════════════════════════════════╗"
@@ -261,9 +286,10 @@ echo ""
echo -e "${CYAN}Полная ссылка для браузера:${NC}"
echo -e " ${BOLD}${GREEN}${PROTO}://${SERVER_IP}:${PANEL_PORT}/${SECRET_PATH}/${NC}"
echo ""
echo -e "${CYAN}Настройка SSL (опционально):${NC}"
echo -e " Войдите в панель → раздел SSL → выберите тип сертификата"
echo -e " После установки SSL: ${BOLD}systemctl restart mita-panel${NC}"
echo -e "${CYAN}SSL:${NC}"
echo -e " Сертификат: самоподписной (10 лет), уже установлен"
echo -e " Браузер покажет предупреждение — примите его"
echo -e " Заменить на Let's Encrypt: раздел SSL в панели или mita-ctl → пункт 3"
echo ""
echo -e "${CYAN}Полезные команды:${NC}"
echo -e " ${YELLOW}systemctl status mita-panel${NC} — статус"
@@ -285,7 +311,7 @@ if [[ "$ACCESS_MODE" == "ssh" ]]; then
echo -e " ${YELLOW}ssh -L ${PANEL_PORT}:127.0.0.1:${PANEL_PORT} -p ${SSH_ACCESS_PORT} root@${SERVER_IP} -N${NC}"
echo ""
echo -e " Затем откройте в браузере:"
echo -e " ${BOLD}${GREEN}http://127.0.0.1:${PANEL_PORT}/${SECRET_PATH}/${NC}"
echo -e " ${BOLD}${GREEN}${PROTO}://127.0.0.1:${PANEL_PORT}/${SECRET_PATH}/${NC}"
echo ""
echo -e " Для фонового режима:"
echo -e " ${YELLOW}ssh -fN -L ${PANEL_PORT}:127.0.0.1:${PANEL_PORT} -p ${SSH_ACCESS_PORT} root@${SERVER_IP}${NC}"