Skip to content

Fastdust/ssl-cron-renewal

Repository files navigation

Автоматическое обновление SSL сертификатов

Простой cron-скрипт для автоматического обновления SSL сертификатов Let's Encrypt.

📁 Структура проекта

ssl-cron-renewal/
├── README.md               # Главная документация
├── README-русский.md      # Подробная документация  
├── README-minimal.md      # Краткая документация
├── cron-job.sh           # Основной скрипт
├── crontab.example       # Пример настройки cron
├── WARP.md              # Документация для разработки
└── .gitignore           # Игнорируемые файлы

✨ Особенности

  • 🔒 Умное управление портами - автоматическое открытие/закрытие порта 80
  • 🛡️ Надёжность - проверка root прав и обработка ошибок
  • 📝 Подробное логирование - все операции записываются в лог
  • Оптимальное расписание - запуск каждые 3 месяца
  • Простота установки - всего несколько команд

🚀 Быстрая установка

1. Клонирование проекта

git clone https://github.com/Fastdust/ssl-cron-renewal.git
cd ssl-cron-renewal

2. Копирование скрипта в систему

# Создать папку для скриптов
sudo mkdir -p /opt/scripts/

# Копировать и сделать исполняемым
sudo cp cron-job.sh /opt/scripts/
sudo chmod +x /opt/scripts/cron-job.sh

3. Тестирование работы

# Проверить скрипт вручную
sudo /opt/scripts/cron-job.sh

4. Настройка автоматического запуска

# Открыть редактор cron
sudo crontab -e

# Добавить строку для запуска каждые 3 месяца:
0 3 1 */3 * /opt/scripts/cron-job.sh

5. Проверка установки

# Проверить установленные задания
sudo crontab -l

# Посмотреть логи
sudo tail /var/log/ssl-renewal.log

🛠️ Использование

📝 Мониторинг логов

# Просмотр последних записей
sudo tail /var/log/ssl-renewal.log

# Мониторинг в реальном времени
sudo tail -f /var/log/ssl-renewal.log

# Проверить статус cron
sudo systemctl status cron

⏰ Примеры расписаний cron

  • Каждые 3 месяца (рекомендуемо): 0 3 1 */3 *
  • Каждый месяц: 0 3 1 * *
  • Каждые 2 недели: 0 3 */14 * *
  • Для тестирования: */5 * * * * (каждые 5 минут)

🔧 Устранение проблем

⚠️ "Скрипт должен запускаться от имени root"

  1. Убедитесь, что cron настроен на root: sudo crontab -e
  2. При ручном тесте используйте: sudo /opt/scripts/cron-job.sh

❌ "Обновление сертификатов завершилось неудачей"

  1. Проверить nginx: sudo systemctl status nginx
  2. Проверить конфигурацию: sudo nginx -t
  3. Проверить сертификаты: sudo certbot certificates
  4. Проверить доступность домена извне

🛡️ Проблемы с портом 80

Если ufw не установлен:

sudo ufw enable  # Включить файрвол

Или просто игнорируйте предупреждения.

📆 Системные требования

  • ОС: Ubuntu 20.04+ или Debian 10+
  • Веб-сервер: nginx
  • SSL клиент: certbot + python3-certbot-nginx
  • Файрвол: ufw (опционально)
  • Сертификаты: Уже существующие Let's Encrypt

✨ Преимущества

  • Понятные сообщения - все ошибки и уведомления понятны
  • Легкая отладка - простое чтение логов
  • Подробная документация - с примерами и решениями

📚 Дополнительная документация


👤 Автор

Fastdust - разработка минималистичных решений для автоматизации

Совет: Всегда тестируйте скрипт вручную перед добавлением в cron!

🛡️ Безопасность: Регулярно проверяйте логи на предмет ошибок.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages