4.6 KiB
4.6 KiB
Настройка HTTPS для домена 1592725-cf88967.twc1.net
Что было сделано
✅ Сервер теперь поддерживает как HTTP, так и HTTPS ✅ HTTP режим продолжает работать как раньше (для разработки) ✅ HTTPS режим настроен для домена (для продакшена) ✅ Certificate pinning сертификаты не затронуты
Как запустить
HTTP режим (разработка) - как раньше
./run_dev.sh
# или
dart run lib/main.dart --isar isar --workdir $(pwd) --backup backup -a 0.0.0.0 -p 8000
HTTPS режим (продакшен) - РЕКОМЕНДУЕМЫЙ
# Используйте Let's Encrypt сертификаты (автоматически)
./run_https_production.sh
Двойной режим (HTTP + HTTPS одновременно) - РЕКОМЕНДУЕМЫЙ
# Автоматический запуск в двойном режиме через build_app.sh
# Скрипт автоматически:
# 1. Проверит наличие Let's Encrypt сертификатов
# 2. Если сертификатов нет - создаст их автоматически
# 3. Запустит сервер в соответствующем режиме
./build_app.sh
HTTP режим (продакшен) - для reverse proxy
# HTTP сервер для работы за nginx/apache
./run_http_production.sh
HTTPS режим (тестирование) - только для разработки
# 1. Сгенерировать самоподписанные сертификаты (только для тестов)
./certs/generate_https_server_cert.sh
# 2. Запустить HTTPS сервер с самоподписанными сертификатами
./run_https.sh
URL адреса
- HTTP:
http://localhost:8000(разработка) - HTTPS:
https://1592725-cf88967.twc1.net:443(продакшен)
Важные моменты
- Certificate pinning сертификаты в папке
certs/НЕ изменены - HTTPS сертификаты созданы в отдельной папке
certs/https_server/ - CORS настроен для поддержки обоих протоколов
- HSTS заголовки добавляются автоматически для HTTPS
Автоматическое создание SSL сертификатов
build_app.sh автоматически создает Let's Encrypt сертификаты
Скрипт build_app.sh автоматически:
- ✅ Проверяет наличие Let's Encrypt сертификатов
- ✅ Если сертификатов нет - создает их автоматически
- ✅ Запускает сервер в соответствующем режиме
Требования для автоматического создания сертификатов
Для успешного создания Let's Encrypt сертификатов убедитесь, что:
- ✅ Домен
1592725-cf88967.twc1.netуказывает на IP адрес сервера - ✅ Порт 80 доступен извне (не заблокирован firewall)
- ✅ На сервере установлен
certbot - ✅ Сервер может принимать входящие соединения на порт 80
Ручное создание сертификатов (если автоматическое не работает)
# Установите 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/
Тестирование
# HTTP тест
curl -X GET http://localhost:8000/health
# HTTPS тест (с самоподписанным сертификатом)
curl -k -X GET https://1592725-cf88967.twc1.net:443/health