diff --git a/start.sh b/start.sh index 77c1f48..6b2134d 100755 --- a/start.sh +++ b/start.sh @@ -1254,7 +1254,19 @@ install_ssl_certificates() { fi fi + # Проверка и остановка запущенных процессов certbot + log_info "Проверка запущенных процессов certbot..." + if pgrep -f certbot > /dev/null; then + log_warn "Обнаружен запущенный процесс certbot, завершаем..." + pkill -f certbot 2>/dev/null || true + sleep 5 + fi + + # Очистка временных файлов certbot + rm -rf /tmp/tmp*/log 2>/dev/null || true + # Получение сертификата через certbot + log_info "Запуск certbot для получения SSL сертификата..." if certbot --nginx -d "$DOMAIN" --email "$EMAIL" --agree-tos --non-interactive --redirect; then log_success "SSL сертификат установлен для $DOMAIN" @@ -1267,22 +1279,26 @@ install_ssl_certificates() { # Обновление firewall для HTTPS case $OS_ID in ubuntu|debian) - ufw allow 443/tcp + ufw allow 443/tcp 2>/dev/null || true ;; centos|rhel|fedora) - firewall-cmd --permanent --add-service=https - firewall-cmd --reload + firewall-cmd --permanent --add-service=https 2>/dev/null || true + firewall-cmd --reload 2>/dev/null || true ;; esac log_success "HTTPS порт открыт в firewall" else log_error "Ошибка установки SSL сертификата" - log_info "Проверьте:" - log_info "1. DNS запись $DOMAIN указывает на этот сервер" - log_info "2. Порт 80 доступен из интернета" - log_info "3. Nginx запущен и доступен" - return 1 + log_warn "Возможные причины:" + log_warn "1. DNS запись $DOMAIN не указывает на этот сервер" + log_warn "2. Порт 80 заблокирован или недоступен из интернета" + log_warn "3. Nginx не запущен или неправильно настроен" + log_warn "4. Достигнут лимит запросов Let's Encrypt" + log_warn "5. Другой процесс certbot уже запущен" + log_info "Система продолжит работу без SSL. SSL можно настроить позже вручную:" + log_info "certbot --nginx -d $DOMAIN --email $EMAIL --agree-tos --non-interactive --redirect" + # НЕ завершаем скрипт, SSL не критичен для работы системы fi }