3.5 KiB
3.5 KiB
Настройка HTTPS для Mnemo Cards Backend
Обзор
Сервер поддерживает два режима работы:
- HTTP (по умолчанию) - для разработки
- HTTPS - для продакшена с доменом
ВАЖНО: Существующие сертификаты в папке certs/ предназначены для certificate pinning в мобильном приложении, а НЕ для HTTPS сервера!
Режимы запуска
1. HTTP режим (разработка)
# Используйте существующий скрипт
./run_dev.sh
# Или напрямую
dart run lib/main.dart --isar isar --workdir $(pwd) --backup backup -a 0.0.0.0 -p 8000
2. HTTPS режим (продакшен)
# Сначала сгенерируйте SSL сертификаты для HTTPS сервера
./certs/generate_https_server_cert.sh
# Затем запустите с HTTPS
./run_https.sh
# Или напрямую
dart run lib/main.dart --isar isar --workdir $(pwd) --backup backup --certs $(pwd)/certs/https_server -a 0.0.0.0 -p 443
SSL сертификаты
Для HTTPS сервера (отдельно от certificate pinning)
Скрипт ./certs/generate_https_server_cert.sh создает самоподписанные сертификаты для HTTPS сервера домена 1592725-cf88967.twc1.net.
Certificate Pinning сертификаты
Существующие сертификаты в certs/ используются для certificate pinning в мобильном приложении и НЕ должны изменяться.
Для продакшена
Рекомендуется использовать сертификаты от доверенного CA:
- Let's Encrypt (бесплатно)
- Cloudflare SSL
- Другие коммерческие CA
Конфигурация
CORS настройки
Сервер автоматически настраивает CORS для поддержки:
- HTTP соединений (localhost, 127.0.0.1)
- HTTPS соединений (1592725-cf88967.twc1.net)
Порты
- HTTP: 8000 (разработка)
- HTTPS: 443 (продакшен)
Домены
- HTTP:
http://localhost:8000 - HTTPS:
https://1592725-cf88967.twc1.net:443
Безопасность
HSTS
При использовании HTTPS автоматически добавляется заголовок Strict-Transport-Security для принуждения к HTTPS соединениям.
CORS
Настроен для поддержки всех необходимых заголовков и методов для API.
Тестирование
HTTP тест
curl -X GET http://localhost:8000/health
HTTPS тест
# Для самоподписанных сертификатов
curl -k -X GET https://1592725-cf88967.twc1.net:443/health
# Для доверенных сертификатов
curl -X GET https://1592725-cf88967.twc1.net:443/health
Развертывание
- Сгенерируйте SSL сертификаты для вашего домена
- Настройте DNS записи для домена
- Запустите сервер с HTTPS
- Настройте reverse proxy (nginx) если необходимо
- Обновите клиентские приложения для использования HTTPS URL