Files
configure_nginx_manager/wiki/LetsEncrypt_Workflow.md
Dmitriy Fofanov 3aacf626a3
Синхронизация Wiki / Синхронизация Wiki (push) Successful in 2s
Функция: Добавлен рабочий процесс GitHub Actions для синхронизации вики
- Реализован новый рабочий процесс в `.github/workflows/wiki-sync.yml` для синхронизации вики с основным репозиторием при отправке изменений в ветку master.

- Рабочий процесс включает шаги клонирования репозитория, проверки наличия папки wiki и синхронизации содержимого вики с вики DFGit.

Документация: Создание описания секретов для развертывания и конфигурации

- Добавлен файл `secrets_description.md`, подробно описывающий необходимые секреты для развертывания и настройки проекта `configure_nginx_manager`.

Документация: Добавление документации по сборке и релизам

- Создан файл `Build_and_Release.md`, описывающий процесс сборки с использованием PyInstaller и этапы упаковки релиза.

Документация: Введение журнала изменений для отслеживания версий

- Добавлен файл `Changelog.md` для краткого описания основных версий и изменений, внесенных в проект.

Документация: Документирование команд и скриптов, доступных в проекте

- Создан файл `Commands.md` для перечисления команд CLI и команд Makefile для удобства пользователей.

Документация: Предоставление подробной информации о конфигурации проекта

- Добавлен файл `Configuration.md` для объяснения структуры конфигурации JSON и параметров.

Документация: Описание действий развертывания и необходимых секретов

- Создан файл `Deploy_Actions_Secrets.md` для описания секретов, необходимых для развертывания через GitHub Actions.

Документация: Объяснение методов синхронизации Gitea с GitHub

- Добавлен файл `Gitea_Sync.md` для описания различных методов синхронизации репозиториев из Gitea в GitHub.

Документация: Создание домашней страницы для вики проекта

- Создан файл `Home.md`, который служит основной точкой входа для вики проекта.

Документация: Описание процедур установки проекта

- Добавлен файл `Installation.md` с подробным описанием методов и требований к установке.

Документация: Описание рабочего процесса Let's Encrypt для управления сертификатами

- Создан файл `LetsEncrypt_Workflow.md` для объяснения процесса получения и обновления SSL-сертификатов.

Документация: Интеграция с документацией Nginx Proxy Manager

- Добавлен файл `Nginx_Proxy_Manager.md` для объяснения синхронизации сертификатов с NPM.

Документация: Определение структуры проекта для лучшего понимания

- Создан файл `Project_Structure.md` для описания ключевых файлов и скриптов проекта.

Документация: Устранение распространенных проблем с API reg.ru

- Добавлен файл `RegRu_API_Troubleshooting.md` для помощи пользователям в диагностике и устранении проблем, связанных с API.

Документация: Предоставить рекомендации по тестированию проекта

- Создан файл `Testing.md`, описывающий стратегии тестирования и ограничения, связанные с Let's Encrypt.

Документация: Добавить боковую панель навигации для вики

- Создан файл `_Sidebar.md` для упрощения навигации по страницам вики.
2026-02-24 22:27:34 +03:00

2.5 KiB
Raw Blame History

Алгоритм получения и продления сертификата

Эта страница описывает реальный алгоритм работы скрипта (по документации и текущему коду).

Получение сертификата (production / staging)

Команды:

  • production: --obtain
  • staging: --staging

Шаги:

  1. Проверка наличия certbot
  2. Формирование списка доменов для certbot:
    • всегда: <domain>
    • если wildcard=true: *.<domain>
  3. Запуск certbot certonly --manual --preferred-challenges dns
  4. Certbot вызывает hookи:
    • auth-hook: добавляет TXT запись _acme-challenge через API reg.ru
    • cleanup-hook: удаляет TXT запись
  5. После успеха сертификаты появляются в cert_dir/<domain>/:
    • privkey.pem, cert.pem, chain.pem, fullchain.pem
  6. (опционально) синхронизация в NPM
  7. (опционально) перезагрузка веб-сервиса (nginx/apache)

Про TXT для поддоменов

Если вы выпускаете сертификат для поддомена вида pages.github.example.com, TXT должен создаваться в зоне зарегистрированного домена example.com как:

  • _acme-challenge.pages.github.example.com

Скрипт учитывает это, выбирая зарегистрированный домен по списку доменов в конфиге.

Продление сертификата

Команда:

  • --renew

Скрипт запускает certbot renew для конкретного --cert-name <domain> и использует те же hookи (auth/cleanup) с корректным --config.

Авто-режим

Команда:

  • --auto

Логика по каждому домену из конфига:

  • если сертификата нет → получить новый
  • если срок меньше renewal_days → продлить
  • иначе → ничего не делать (опционально проверить наличие в NPM)

Возврат кода:

  • 0 — всё успешно
  • 1 — были ошибки

Где смотреть логи

  • Логи скрипта: путь log_file из конфига
  • Логи certbot: обычно /var/log/letsencrypt/letsencrypt.log
  • systemd: journalctl -u letsencrypt-regru -f