Назад | Перейти на главную страницу

Обработка сопоставления доменов в качестве поставщика SaaS

Я рассмотрел похожие вопросы, например этот и этот, но ответы, похоже, сосредоточены на том, как настроить виртуальный хостинг. Я не эксперт в этом, но меня больше беспокоит, что делать после того, как это заработает. Вот мой пример:

Скажем, я SaaS-поставщик услуги foo. Я размещаю на fooservice.com. Для каждого пользователя они получают свой поддомен bob.fooservice.com. Я почти уверен, что справлюсь с этой частью. По нему есть много документации. Предположим также, что Боб хочет, чтобы сервис отображался как поддомен его сайта awesomebob.com. Он хочет, чтобы это был foo.awesomebob.com. Я знаю, что Бобу нужно добавить запись CNAME из foo.awesomebob.com -> bob.fooservice.com. У меня вопрос: что мне нужно сделать, чтобы убедиться, что все работает на моем сервере fooservice.

  1. Нужно ли мне делать что-то особенное, чтобы адресная строка оставалась на foo.awesomebob.com?
  2. Как я могу убедиться, что только CNAME foo.awesomebob.com может выполнять сопоставление домена? На таких сайтах, как shopify и wordpress, они заставляют вас вводить домен, который используется для сопоставления, через панель администратора. Что здесь происходит за кулисами?
  3. Судя по тому, что я исследовал, это было бы невозможно сделать с одним IP-адресом и при этом иметь поддержку SSL. Это правильно?
  1. Нет, пока вы не перенаправляете пользователя, все, что пользователь вводит в адресную строку, остается там. Немного легко обмануть автоматически сгенерированные ссылки, которые предполагают доменное имя (например, ваша CMS может всегда использовать полные URL-адреса в ссылках вместо относительных); это можно исправить, но на это следует обратить внимание.
  2. Предполагая, что вы используете общие IP-адреса (поскольку выделенные IP-адреса для каждого сайта имеют множество проблем), вам необходимо добавить сопоставление для любого доменного имени, с которым вы хотите работать. Если Боб создаст bob.awesomebob.com, не сообщая вам, это не сработает.
    Если вы используете выделенные IP-адреса, то пользователь может добавить любые CNAME, которые он хочет, и они будут работать. Вы можете добавить фильтрацию на свой веб-сервер, чтобы заблокировать такое поведение.
  3. Вы можете сделать это с помощью сертификатов UCC, которые могут иметь несколько совершенно разных доменных имен в сертификате. Они становятся более дорогими по мере того, как вы добавляете больше, и довольно сложно добавлять / удалять домены из сертификата.
    Если вы разрешаете SSL только для поддоменов вашего основного домена (bob.fooexample.com подойдет, bob.awesomebob.com - нет), тогда вы можете использовать сертификат с подстановочными знаками для домена * .fooexample.com. Это не стоит слишком дорого, и вам не нужно будет обновлять его при добавлении нового поддомена. В любом случае сертификат не может быть сертификатом EV (без зеленой адресной строки).