HTTPS для клубу: тунель за 10 хвилин

Кабінет гравця перестає ходити відкритим текстом у клубній Wi-Fi, власник бачить зал із дому, а сповіщення нарешті працюють.

Навіщо це насправді

Поки клубний сервер працює лише в локальній мережі, кабінет гравця відкривається по http://192.168.x.x:5000/my/. Це означає три речі:

  1. Пароль гравця й cookie йдуть відкритим текстом по клубній Wi-Fi. Будь-хто в тій самій мережі з ноутбуком і безкоштовною програмою бачить їх. Це не теорія — це найдешевша атака, яка існує.
  2. Сповіщення на телефон не працюють узагалі. Браузери дозволяють їх лише на захищеному зʼєднанні.
  3. Власник не бачить зал із дому — тільки з клубу.

Тунель закриває всі три пункти за один вечір.

Чому тунель, а не «прокинути порт на роутері»

  • Жодного відкритого порту. cloudflared сам виходить назовні; зовні до вашого роутера ніхто не стукає.
  • Не треба білої IP-адреси й не страшно, коли провайдер її змінить.
  • Сертифікат випускає і продовжує Cloudflare. У клубі нікому стежити за строком дії сертифіката — а прострочений сертифікат ламає все одразу.

Як зробити

  1. У Cloudflare Zero Trust → Networks → Tunnels → Create tunnel, скопіюйте токен.
  2. На клубному сервері:
powershell -ExecutionPolicy Bypass -File setup-tunnel.ps1 `
  -Hostname klub.ваш-домен.com -Token eyJ...
  1. Там же в Cloudflare додайте Public hostname: klub.ваш-домен.comhttp://localhost:5000.
  2. У appsettings.json сервера:
"BehindProxy": true,
"PublicUrl": "https://klub.ваш-домен.com"

BehindProxy вмикається лише разом із тунелем: він каже серверу довіряти заголовкам проксі, і саме завдяки цьому cookie входу отримує позначку Secure. У звичайній локальній мережі його вмикати не можна — там ці заголовки може підробити будь-хто.

PublicUrl потрапляє в QR-код на замку: гравець сканує його телефоном і відкриває вже захищену адресу.

Що зробити одразу після

Дашборд тепер доступний з інтернету — отже:

  • змініть пароль власника на довгий і не той, що був «поки для себе»;
  • перевірте коди реєстрації пристроїв: вони мають бути з обмеженим строком, а не вічні;
  • лишіть агентам локальну адресу сервера (ws://192.168.x.x:5000/agent). Гнати трафік машин через інтернет не потрібно й шкідливо: клуб мусить працювати, коли інтернет ліг.

Останнє — найважливіше правило всієї системи: тунель додає можливості, але нічого не забирає. Зникне інтернет — зал, каса й сесії працюють далі, бо сервер стоїть у вас.

Що після цього зʼявиться в гравця

У кабінеті — блок «Сповіщення». Приходить лише важливе:

  • час закінчується (за 10 хвилин, один раз);
  • скоро ваша бронь (за 30 хвилин);
  • баланс поповнено.

Новин і реклами там немає свідомо: сповіщення, які приходять часто, вимикають — і тоді не спрацює те єдине, заради якого їх умикали.