From 4d2776466d5b98695f181dc4bc8435196dc7620f Mon Sep 17 00:00:00 2001 From: Petro1990 Date: Fri, 13 Mar 2026 15:39:05 +0300 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B8=D1=87=D0=B0:=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D0=BD=D0=B0=D1=8F=20=D0=B0=D0=B2=D1=82=D0=BE=D0=BC=D0=B0=D1=82?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20SSL=20=D0=B8=20=D0=BD?= =?UTF-8?q?=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA=D0=B0=20=D0=B0=D0=B2?= =?UTF-8?q?=D1=82=D0=BE=D0=BF=D1=80=D0=BE=D0=B4=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20(Certbot)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rproxy | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/rproxy b/rproxy index 7cf2fd2..64a4e0b 100644 --- a/rproxy +++ b/rproxy @@ -263,7 +263,7 @@ do_add_interactive() { [ -z "$target" ] && { warn "Адрес не может быть пустым"; pause; return; } printf "\n Привязать к домену?\n" - printf " ${BOLD}1)${NC} Да — указать доменное имя (порт 80)\n" + printf " ${BOLD}1)${NC} Да — указать доменное имя (порт 443)\n" printf " ${BOLD}2)${NC} Нет — указать внешний порт\n" prompt "Выберите [2]: " local mode="${REPLY:-2}" @@ -276,24 +276,17 @@ do_add_interactive() { prompt "Доменное имя (например, mysite.example.com): " domain="$REPLY" [ -z "$domain" ] && { warn "Домен не указан"; pause; return; } - ext_port=80 - printf "\n Включить SSL (HTTPS) через Certbot? (д/н) [н]: " - read -r use_ssl_ans - case "$use_ssl_ans" in - д|Д|y|Y|да|yes) - use_ssl="yes" - ext_port=443 - if [ -z "$CERTBOT_EMAIL" ]; then - prompt "Введите Email для регистрации сертификатов: " - CERTBOT_EMAIL="$REPLY" - # Сохраняем email в конфиг - sed -i "/CERTBOT_EMAIL=/d" "$CONF_FILE" - echo "CERTBOT_EMAIL=\"$CERTBOT_EMAIL\"" >> "$CONF_FILE" - fi - ;; - *) use_ssl="no" ;; - esac + # SSL теперь всегда включен для доменов по запросу пользователя + use_ssl="yes" + ext_port=443 + if [ -z "$CERTBOT_EMAIL" ]; then + prompt "Введите Email для регистрации сертификатов (Certbot): " + CERTBOT_EMAIL="$REPLY" + # Сохраняем email в конфиг + sed -i "/CERTBOT_EMAIL=/d" "$CONF_FILE" + echo "CERTBOT_EMAIL=\"$CERTBOT_EMAIL\"" >> "$CONF_FILE" + fi else local suggested suggested=$(next_free_port) @@ -474,6 +467,9 @@ do_ssl_interactive() { # Обновляем конфиг сервиса sed -i "s/SVC_SSL=.*/SVC_SSL=\"yes\"/" "$SERVICES_DIR/$name.conf" sed -i "s/SVC_EXT_PORT=.*/SVC_EXT_PORT=\"443\"/" "$SERVICES_DIR/$name.conf" + + # Проверка автопродления (добавляем таймер/крон если нет) + ssh_cmd "systemctl is-active certbot.timer >/dev/null 2>&1 || (crontab -l 2>/dev/null | grep -q certbot || (crontab -l 2>/dev/null; echo \"0 0,12 * * * certbot renew -q\") | crontab -)" else err "Certbot не смог выпустить сертификат" warn "Убедитесь, что домен $SVC_DOMAIN указывает на этот VPS и порт 80 открыт"