# Настройка HTTPS для домена 1592725-cf88967.twc1.net ## Что было сделано ✅ **Сервер теперь поддерживает как HTTP, так и HTTPS** ✅ **HTTP режим продолжает работать как раньше** (для разработки) ✅ **HTTPS режим настроен для домена** (для продакшена) ✅ **Certificate pinning сертификаты не затронуты** ## Как запустить ### HTTP режим (разработка) - как раньше ```bash ./run_dev.sh # или dart run lib/main.dart --isar isar --workdir $(pwd) --backup backup -a 0.0.0.0 -p 8000 ``` ### HTTPS режим (продакшен) - РЕКОМЕНДУЕМЫЙ ```bash # Используйте Let's Encrypt сертификаты (автоматически) ./run_https_production.sh ``` ### Двойной режим (HTTP + HTTPS одновременно) - РЕКОМЕНДУЕМЫЙ ```bash # Автоматический запуск в двойном режиме через build_app.sh # Скрипт автоматически: # 1. Проверит наличие Let's Encrypt сертификатов # 2. Если сертификатов нет - создаст их автоматически # 3. Запустит сервер в соответствующем режиме ./build_app.sh ``` ### HTTP режим (продакшен) - для reverse proxy ```bash # HTTP сервер для работы за nginx/apache ./run_http_production.sh ``` ### HTTPS режим (тестирование) - только для разработки ```bash # 1. Сгенерировать самоподписанные сертификаты (только для тестов) ./certs/generate_https_server_cert.sh # 2. Запустить HTTPS сервер с самоподписанными сертификатами ./run_https.sh ``` ## URL адреса - **HTTP**: `http://localhost:8000` (разработка) - **HTTPS**: `https://1592725-cf88967.twc1.net:443` (продакшен) ## Важные моменты 1. **Certificate pinning сертификаты** в папке `certs/` НЕ изменены 2. **HTTPS сертификаты** созданы в отдельной папке `certs/https_server/` 3. **CORS настроен** для поддержки обоих протоколов 4. **HSTS заголовки** добавляются автоматически для HTTPS ## Автоматическое создание SSL сертификатов ### build_app.sh автоматически создает Let's Encrypt сертификаты Скрипт `build_app.sh` автоматически: 1. ✅ Проверяет наличие Let's Encrypt сертификатов 2. ✅ Если сертификатов нет - создает их автоматически 3. ✅ Запускает сервер в соответствующем режиме ### Требования для автоматического создания сертификатов Для успешного создания Let's Encrypt сертификатов убедитесь, что: - ✅ Домен `1592725-cf88967.twc1.net` указывает на IP адрес сервера - ✅ Порт 80 доступен извне (не заблокирован firewall) - ✅ На сервере установлен `certbot` - ✅ Сервер может принимать входящие соединения на порт 80 ### Ручное создание сертификатов (если автоматическое не работает) ```bash # Установите certbot (если не установлен) sudo apt install certbot # Ubuntu/Debian # Получите сертификат вручную sudo certbot certonly --standalone -d 1592725-cf88967.twc1.net # Сертификаты будут в /etc/letsencrypt/live/1592725-cf88967.twc1.net/ ``` ### 2. Cloudflare SSL (если домен на Cloudflare) - Включите SSL/TLS в панели Cloudflare - Выберите "Full (strict)" режим - Сертификаты будут автоматически обновляться ### 3. Другие CA - Comodo, DigiCert, Sectigo и др. - Загрузите полученные сертификаты в `certs/production/` ## Тестирование ```bash # HTTP тест curl -X GET http://localhost:8000/health # HTTPS тест (с самоподписанным сертификатом) curl -k -X GET https://1592725-cf88967.twc1.net:443/health ```