mnemo_cards/mnemo_cards_backend/README_HTTPS.md
2025-11-16 14:25:27 +03:00

3.5 KiB
Raw Blame History

Настройка 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

Развертывание

  1. Сгенерируйте SSL сертификаты для вашего домена
  2. Настройте DNS записи для домена
  3. Запустите сервер с HTTPS
  4. Настройте reverse proxy (nginx) если необходимо
  5. Обновите клиентские приложения для использования HTTPS URL