Рейтинг:1

Google Cloud Load Balancer + группа экземпляров + SSL-сертификаты

флаг in

Мой проект состоит из основного веб-сайта, на котором пользователи могут зарегистрировать учетную запись. После регистрации каждый из них получает веб-сайт (поддомен моего собственного домена), где у них есть магазин электронной коммерции, управляемый платформой, размещенной на моем основном сайте (тот, на котором они зарегистрировались) Как это

example1.com -> основной сайт (авторизация, регистрация и т.д.)
example1.com/platform -> платформа управления
store1.example1.com -> Магазин пользователя 1
store2.example1.com -> Магазин пользователя 2

И с точки зрения оборудования прямо сейчас моя установка такова: 1 экземпляр виртуальной машины в GCP с apache, пара виртуальных хостов с некоторыми подстановочными знаками, которые могут сопоставлять запрошенный домен с соответствующей папкой.
Я также создал подстановочный сертификат на своем основном домене, защищающий все магазины моих клиентов с помощью SSL.

Теперь я хотел предотвратить перегрузку сервера с течением времени, поэтому я, хотя наличие балансировщика нагрузки, подключенного к группе экземпляров машин, реплицированных из описанного выше, решит мою проблему, теоретически это работает, но у меня есть проблема:

Каждый пользователь имеет право купить собственное доменное имя и перенаправить его на мой ip (LB или VM), чтобы их магазин выглядел примерно так:

store1.com -> Магазин пользователя 1
store2.com -> Магазин пользователя 2

И, если бы они захотели, они могли бы «купить» SSL-сертификат на моей платформе, чтобы защитить свое доменное имя. Я могу легко обрабатывать сертификаты SSL на лету через certbot API и letsencrypt, но, поскольку мои виртуальные машины будут работать в группе экземпляров, любой файл сертификата, который я сохраняю на текущей работающей виртуальной машине, не будет реплицирован на другие (если таковые имеются). ) и даже может быть потерян, когда группа экземпляров решит, что текущая виртуальная машина ей больше не нужна. Как я мог организовать все (LB, группу экземпляров, виртуальную машину и/или apache), чтобы балансировщик нагрузки отправлял трафик на несколько виртуальных машин в моей группе экземпляров, но они могли каким-то образом «расшаривать» папку сертификатов или даже весь диск. ?

Кстати, постоянный диск на виртуальной машине может быть подключен к нескольким виртуальным машинам только в том случае, если они находятся в режиме только для чтения (не будет работать), и я также пробовал хранилище файлов, но оно стоит 200 в месяц, и это немного много для этого ..

John Hanley avatar
флаг cn
Настройка SSL-сертификата на каждой ВМ вам не поможет. Сертификат SSL и личный домен должны быть настроены в балансировщике нагрузки. Вам нужно будет написать код для создания личного домена, а также запросить увеличение квоты для SSL-сертификатов, поскольку по умолчанию используется около 10 сертификатов.
Рейтинг:1
флаг co

Как отметил @JohnHanley:

Управляйте сертификатами при установке LB и удаляйте certbot с веб-сервера. При проверке домена Google будут некоторые накладные расходы, но попробовать определенно стоит.

Относительно LB-конфигурации и сертификатов:

  • вы не можете изменить настроенный сертификат на LB
  • но вы можете добавить новый сертификат (например,с дополнительным именем хоста) и добавьте его в существующую LB, а затем удалите старую настройку сертификата.

Есть несколько модулей Terraform, которые могут вам помочь, но, конечно, это также потребует некоторых усилий по обучению и управлению.

Ответить или комментировать

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