Мультитенантный SSL с Cloudflare и Heroku - PullRequest
0 голосов
/ 19 декабря 2018

В настоящее время я создаю приложение, которое будет находиться на app.mydomain.com, работающем в Heroku.У всех пользователей будут свои собственные точки входа, такие как app.mydomain.com/client1, app.mydomain.com/client2 и т. Д. Я хочу, чтобы клиенты могли настраивать свой собственный домен (www.clientdomain.com) и называть егоих точка входа.Я понимаю, что до сегодняшнего дня это довольно просто.

Все мои DNS обрабатываются Cloudflare, и я верю, что могу настроить Cloudlfare в полном (строгом) режиме, все, что мне нужно сделать, это установить их сертификат Origin на мойHeroku Dyno.Это обеспечит безопасность всех прямых подключений к моему домену (перейдите по адресу app.mydomain.com/client1).

Вопрос в том, как клиент получает SSL-соединение для своего домена;мне нужно получить многодоменный сертификат и начать добавлять к нему домены, когда я получаю клиентов, или я должен установить их сертификат на Heroku (я полагаю, что могу установить только 1, так что это не пойдет) или он должен житьCloudflare где-то или есть дополнительные опции, которые я не вижу (надеюсь, что есть!).

Мне не интересно, что делать для моих собственных доменов, а скорее, как клиенты устанавливают соединение SSL со своимидомены, которые разрешаются на мои серверы.

Это довольно озадачивает!

Поток будет (я думаю): Пользовательский браузер -> Клиенты DNS -> (cname to) My Cloudflare -> Heroku

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Хм, похоже, это может быть довольно солидное решение этой проблемы ...

https://blog.cloudflare.com/introducing-ssl-for-saas/

0 голосов
/ 20 декабря 2018

Редактировать - после уточнения

В настоящее время я создаю приложение, которое будет находиться на app.mydomain.com, работающем в Heroku.У всех пользователей будут свои собственные точки входа, такие как app.mydomain.com/client1, app.mydomain.com/client2 и т. Д. Вопрос в том, как клиент получает SSL-соединение для своего домена;мне нужно получить многодоменный сертификат и начать добавлять домены к нему, когда я получаю клиентов?

Если вы собираетесь использовать одно и то же приложение Heroku для всех ваших клиентов (я думаю, что это плохоИдея, кстати, но вам может потребоваться) - тогда да - вы должны получить многодоменный сертификат и продолжать добавлять домены к нему по мере расширения вашего списка клиентов.

Оригинальный ответ - объясняющий SSL + Балансировка нагрузки в Heroku.

В настоящее время я создаю приложение, которое будет находиться по адресу app.mydomain.com , которое работаетна Heroku.Я был клиентом, чтобы иметь возможность настроить свой собственный домен www.clientdomain.com и назвать его своим.

Вам потребуется сертификат с подстановочными знаками, чтобы покрыть ваш поддомен (дляapp.mydomain.com).Вы будете использовать этот сертификат в heroku.

... все, что мне нужно сделать, это установить их Origin Cert на мой Heroku dyno.

Вы правы -кроме того, что это не на вашем Heroku Dyno, это на вашей конечной точке приложения Heroku.Здесь можно прочитать: https://serverfault.com/questions/68753/does-each-server-behind-a-load-balancer-need-their-own-ssl-certificate

Если вы выполняете балансировку нагрузки на уровне TCP или IP (уровень OSI 4/3, он же L4, L3), тогда да, все HTTP-серверы будутнеобходимо иметь установленный сертификат SSL.

Если вы загрузите баланс на уровне HTTPS (L7), то вы обычно устанавливаете сертификат только на балансировщике нагрузки и используете обычный незашифрованный HTTP через локальныйсеть между балансировщиком нагрузки и веб-серверами (для лучшей производительности на веб-серверах).

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

Вопрос в том, как клиент получает SSL-соединение;мне нужно получить многодоменный сертификат и начать добавлять к нему домены, когда я получаю клиентов, должен ли я установить их сертификат на Heroku (я полагаю, что могу установить только 1, так что не стоит) или он должен жить на Cloudflareгде-нибудь?

Если вы имеете в виду добавление серверов к вашей службе из heroku, все, что вам нужно сделать, это увеличить количество веб-динамов,Heroku справится с балансировкой нагрузки между этими динамо.Ваш SSL-сертификат должен быть разрешен в балансировщике нагрузки, чтобы ваши dynos обслуживали запросы для той же конечной точки . Вам не нужен еще один SSL-сертификат для определенной вами конечной точки, если выобслуживающий трафик от нескольких подключенных к нему динамов.

...