# πŸ“ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° configure_nginx_manager ## ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ скрипты ### Python (РСкомСндуСтся) - **letsencrypt_regru_api.py** (1,411 строк) - ΠŸΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Python скрипт - ΠŸΡ€ΡΠΌΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π° с API reg.ru - Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Nginx Proxy Manager - АвтоматичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ сСртификатов - ГСнСрация тСстовых самоподписанных сСртификатов - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° wildcard Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ### Bash - **letsencrypt_regru_dns.sh** - Bash скрипт с certbot-dns-regru ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ - ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° использования - ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ зависимости ### PowerShell - **letsencrypt_regru.ps1** - Windows вСрсия - Аналогична Bash скрипту ### ВСстированиС - **test_certificate.sh** - БыстроС созданиС тСстовых сСртификатов Ρ‡Π΅Ρ€Π΅Π· OpenSSL - Автономная Ρ€Π°Π±ΠΎΡ‚Π° Π±Π΅Π· Python - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° wildcard Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ## Автоматизация ### Makefile - **Makefile** (415 строк) - `make install` - Полная установка ΠΈ настройка - `make uninstall` - ЧистоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ - `make status` - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° состояния - `make test-cert` - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ тСстового сСртификата - `make obtain` - ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Let's Encrypt сСртификата - `make renew` - ОбновлСниС сСртификата - `make logs` - ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π»ΠΎΠ³ΠΎΠ² - `make check-config` - Валидация ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ## ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ### config.json.example ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ со всСми ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ: - Π£Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ reg.ru API - Настройки Π΄ΠΎΠΌΠ΅Π½Π° ΠΈ email - ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ обновлСния (renewal_days) - Настройки Nginx Proxy Manager - ΠŸΡƒΡ‚ΠΈ ΠΊ дирСкториям ΠΈ Π»ΠΎΠ³Π°ΠΌ ## ДокумСнтация ### README.md (1,420+ строк) Основная докумСнтация: - Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ возмоТности - Быстрый старт - Установка Ρ‡Π΅Ρ€Π΅Π· Makefile - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ тСстовых сСртификатов - ВрСбования ΠΈ установка зависимостСй - Настройка ΠΈ использованиС - Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с NPM - АвтоматичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ - Автоматизация Ρ‡Π΅Ρ€Π΅Π· cron/systemd - УстранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ ### TESTING_GUIDE.md (370+ строк) Руководство ΠΏΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ: - Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ тСстовыС сСртификаты - ΠžΠ±Ρ…ΠΎΠ΄ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² Let's Encrypt (5 Π² нСдСлю) - Быстрый старт с тСстовыми сСртификатами - Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² создания - ИспользованиС Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ - Автоматизация тСстирования - ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ с тСстовых Π½Π° production - ЧастыС вопросы - ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для CI/CD ΠΈ Docker ### GITEA_SYNC.md Бинхронизация Gitea β†’ GitHub: - 4 ΠΌΠ΅Ρ‚ΠΎΠ΄Π° синхронизации (Git Hooks, GitHub Actions, Gitea Mirror, Double Remote) - ΠŸΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ инструкции установки - Настройка SSH ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² - Webhook интСграция - УстранСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ - Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ### CHEATSHEET.md Быстрая ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ°: - ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ - Workflow Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ - Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ использования - ЧастыС ошибки ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ### PROJECT_STRUCTURE.md (этот Ρ„Π°ΠΉΠ») - ОписаниС всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° - ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ характСристика ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ### CHANGELOG.md Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: - ВСрсии ΠΈ обновлСния - НовыС возмоТности - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ - Roadmap ## Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Git ### .github/workflows/sync-from-gitea.yml GitHub Actions для синхронизации: - АвтоматичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ час - Webhook Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ ΠΎΡ‚ Gitea - Π ΡƒΡ‡Π½ΠΎΠΉ запуск - Merge ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Gitea - Push Π² GitHub ### gitea-hooks/ Git hooks для Gitea сСрвСра: **post-receive** - АвтоматичСский push Π² GitHub послС commit - МгновСнная синхронизация (< 1 сСкунды) - Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ - Бинхронизация Ρ‚Π΅Π³ΠΎΠ² - ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° SSH ΠΈ HTTPS **README.md** - Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΏΠΎ установкС hook - Настройка Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ - УстранСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ## Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ### Markdown Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ - **Add Let's Encrypt Certificate для ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° reg.ru.md** - ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ инструкции - **Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ΄Π»Π΅Π½ΠΈΠ΅ SSL сСртификата.md** - Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΎ процСссС ## ВозмоТности ### βœ… ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ - [x] Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Let's Encrypt сСртификатов Ρ‡Π΅Ρ€Π΅Π· reg.ru DNS API - [x] Wildcard сСртификаты (*.domain.com) - [x] АвтоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ сСртификатов - [x] DNS-01 валидация - [x] Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Nginx Proxy Manager - [x] АвтоматичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°/ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π² NPM ### βœ… ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ - [x] АвтоматичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° срока дСйствия - [x] НастраиваСмый ΠΏΠΎΡ€ΠΎΠ³ обновлСния (renewal_days) - [x] Systemd service + timer - [x] Cron автоматизация - [x] ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ - [x] Валидация ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ### πŸ†• ВСстированиС - [x] ГСнСрация самоподписанных тСстовых сСртификатов - [x] ΠžΠ±Ρ…ΠΎΠ΄ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² Let's Encrypt (5/нСдСлю) - [x] МгновСнноС созданиС Π±Π΅Π· DNS - [x] Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ тСстовых сСртификатов с NPM - [x] Полная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ структуры с Let's Encrypt ### πŸ”„ Бинхронизация Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² - [x] АвтоматичСская синхронизация Gitea β†’ GitHub - [x] Git Hooks (мгновСнная синхронизация) - [x] GitHub Actions (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ час) - [x] Webhook интСграция - [x] SSH ΠΈ HTTPS аутСнтификация ## Установка ### Быстрая установка ```bash sudo make install sudo nano /etc/letsencrypt/regru_config.json sudo make test-cert # Для тСстирования sudo make obtain # Для production ``` ### Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° послС установки ``` /opt/letsencrypt-regru/ β”œβ”€β”€ letsencrypt_regru_api.py /etc/letsencrypt/ β”œβ”€β”€ regru_config.json └── live/ └── example.com/ β”œβ”€β”€ privkey.pem β”œβ”€β”€ cert.pem β”œβ”€β”€ fullchain.pem └── chain.pem /etc/systemd/system/ β”œβ”€β”€ letsencrypt-regru.service └── letsencrypt-regru.timer /var/log/letsencrypt/ └── letsencrypt_regru.log ``` ## ИспользованиС ### ВСстированиС (Π±Π΅Π· Π»ΠΈΠΌΠΈΡ‚ΠΎΠ²) ```bash sudo make test-cert # Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ тСстовый сСртификат sudo make status # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ статус ``` ### Production ```bash sudo make obtain # ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Let's Encrypt сСртификат sudo make renew # ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСртификат sudo make run # АвтоматичСский Ρ€Π΅ΠΆΠΈΠΌ ``` ### ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ```bash sudo make logs # ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π»ΠΎΠ³ΠΎΠ² sudo make status # Бтатус слуТб sudo make check-config # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ``` ## Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ - **Python 3.6+** - Основной язык - **Certbot** - Let's Encrypt ΠΊΠ»ΠΈΠ΅Π½Ρ‚ - **requests** - HTTP запросы ΠΊ API - **cryptography** - ГСнСрация тСстовых сСртификатов - **systemd** - Автоматизация запуска - **cron** - ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ автоматизация - **Make** - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ установкой - **OpenSSL** - ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ гСнСрация сСртификатов ## ЛицСнзия Open Source - свободноС использованиС ## Автор Π€ΠΎΡ„Π°Π½ΠΎΠ² Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ @ 2025 ## ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π‘ΠΌ. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ: - [README.md](README.md) - ОсновноС руководство - [TESTING_GUIDE.md](TESTING_GUIDE.md) - Руководство ΠΏΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ --- **ВСрсия**: 2.1 **Π”Π°Ρ‚Π°**: 27 октября 2025 **Бтатус**: βœ… Production Ready