Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 August 06

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
а почему?
источник

Y

Yaroslav in NodeUA - JavaScript and Node.js in Ukraine
Потому что изначально нужно слушать 443 порт, а там другой флоу взаимодействия клиент-сервер, думаю что редиректы будет сложно разрулить. У меня пока руки не дошли. Там глубоко нужно закопаться в тему
источник

SS

Sergiy Skyninko in NodeUA - JavaScript and Node.js in Ukraine
У нас один апи, с которым работают полностью с разных доменов.
На входе апи детектит от кого пришёл запрос, потому что его функции отличаются немного для каждого сайта.

Не совсем понял, почему ваш апи ваших сервисов не может?

Генерить же каждому сертификат - придётся. Там же вроде никак по другому центр сертификации не пропустит.
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
у нас изначально не выдается по домену на каждого юзера

это опционально

плюс сам апи был спроектирован так изначально, фичу с доменами запросили буквально вот недавно
источник

SS

Sergiy Skyninko in NodeUA - JavaScript and Node.js in Ukraine
Я так и подумал, что на этапе проектирования не планировалась такая фича...

Генерировать то и отдать, это ещё так, рутинная задача. А вот если апи не предусматривает запросы с других доменов...
Если нет возможности решить проблему в самом функционале, то только костылями. Например, если есть линки на статику, и они тоже должны быть с кастомного домена - конвертить фильтрами веб-сервера. И т.п.
источник

SS

Sergiy Skyninko in NodeUA - JavaScript and Node.js in Ukraine
Красиво вобщем вряд ли выйдет. Подробностей конечно не хватает, для диагноза по фото :)
источник

SS

Sergiy Skyninko in NodeUA - JavaScript and Node.js in Ukraine
Думается - придётся преобработку и постобработку запросов и ответов выносить в скрипты на встроенном в nginx js. Если нельзя/сложнее трогать сам функционал сервиса
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
Я даже застрял на том что чтобы вызвать того же certbot, нужны рут права, нодой рутом не хочется ничего делать, и прийдеться придумвать какой то крон скрипт который откуда то считает новые домены и получит сертификаты для них
источник

SS

Sergiy Skyninko in NodeUA - JavaScript and Node.js in Ukraine
Я пока не сложил себе схему как у вас что устроено, кто куда ходит и т.п.

В общем случае все что понял
Пользователь вводит домен
Валидируем. Если ок
Генерим сертификат
Тот кто смотрит наружу
При входящем запросе берет этот сертификат, для этого домена
Переделывает запрос, и проксирует на сервис. Сервис потому что ни от каких других доменов не может принимать запросы
Получает ответ, изменяет, если нужно в нем вхождения домена
Отправляет (шифруя сертификатом)
источник

SS

Sergiy Skyninko in NodeUA - JavaScript and Node.js in Ukraine
Если наружу смотрит сам сервис но другие домены не принимает, то - либо его дописывать, либо ставить перед ним кого-то, кто сделает работу что описана выше
источник

SS

Sergiy Skyninko in NodeUA - JavaScript and Node.js in Ukraine
Но, возможно у вас структура серверов сервисов такая, что так делать совсем неправильно, и есть частность, нюанс, которые позволят сделать все намного проще.
источник

SS

Sergiy Skyninko in NodeUA - JavaScript and Node.js in Ukraine
Сгенерить сертификат как мне видится то самое простое.
Вопрос - как корректно скормить запрос с нового домена вашему сервису, и какой ответ запрашивающей стороне будет правильным, с учётом нового домена
источник

SS

Sergiy Skyninko in NodeUA - JavaScript and Node.js in Ukraine
Редиректы, непонятно как могут разрешить два этих вопроса...
источник

SS

Sergiy Skyninko in NodeUA - JavaScript and Node.js in Ukraine
А сертификаты генерить хранить читать, то такое. Если есть редис или подобное, то по идее хоть в нем храните. Не суть важно, где как удобнее, принято, там и храните. Может и в бд
источник

SS

Sergiy Skyninko in NodeUA - JavaScript and Node.js in Ukraine
Кроном можно генерить. Можно демонизировать какой нить питон/пхп скрипт, который будет генерить, имея права. На вход ему домен и путь куда положить, в ответ - сделано/ошибка. То частности.
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
Спасибо за уточнения.
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
уточню что как бы апи может принимать запросы в теории с любых доменов, там в параметрах самого запроса указывается страницу какого магазина нужно открыть (shop_id=123 грубо говоря)
источник

SS

Sergiy Skyninko in NodeUA - JavaScript and Node.js in Ukraine
А с ответом как? Линки на статику должны содержать домен с которого пришёл запрос? Или таких не бывает у этого сервиса?
источник

SS

Sergiy Skyninko in NodeUA - JavaScript and Node.js in Ukraine
Ну там, не знаю, фоточка товара. Кто на неё линк отдаёт у вас?
источник

VK

Vlad Kolomoets in NodeUA - JavaScript and Node.js in Ukraine
Хранить лучше метадату в бд, фотку в папке с id совпадающую, тогда по пермишенам еще можно чекать будет
источник