2016-05-25 2 views
4

Я работаю над приложением Ruby on Rails SaaS с пользовательским субдоменом для каждой компании. Когда компания подписывается, пользователь перенаправляется на нее subdomain.myapp.io.SSL на поддоменах подстановочных знаков с CloudFlare и Heroku

Приложение размещено на Heroku, а DNS управляется в CloudFlare. Я использую бесплатную функцию SSL, предоставляемую CloudFlare, которая работает как ожидается для https://myapp.io.

Моя проблема связана с активностью SSL для поддоменов. Интересно, возможно ли это, не покупая подстановочный SSL-сертификат.

установки CloudFlare DNS:

myapp.io. 300 IN CNAME myapp.herokuapp.com. 
*.myapp.io. 300 IN CNAME myapp.herokuapp.com. 

Heroku домены установки:

myapp.io 
*.myapp.io 

Это работает, но без SSL на поддомены. Невозможно использовать функции CloudFlare (например, SSL Full) для поддоменов подстановочных знаков (кроме пользователей плана Entreprise).

Я думаю, мне нужно купить подстановочный SSL-сертификат для моего домена ($ 115 за год) и добавить SSL-конечная точка Дополнение Heroku ($ 7/month). Я ошибаюсь?

ответ

3

Короткий ответ:
Вы не можете иметь свободный Wildcard SSL (Полная защита) для субдоменов на CloudFlare (свободный план).

Длинный ответ:
Я имею в виду, используя подстановочный с CloudFlare (свободный план), CloudFlare защита прокси и ускорение пропускаются (не оранжевое облако), так что ваш сертификат SSL исходного сервера будет использоваться вместо этого. Поэтому для включения SSL вам необходимо добавить запись CNAME для каждого субдомена (значок облака должен быть оранжевым).

Пример:
foo.myapp.io. 300 IN CNAME myapp.herokuapp.com.
балка.myapp.io. 300 IN CNAME myapp.herokuapp.com.

(Вам не нужно добавлять записи пользовательских доменов в Heroku, если у вас уже есть * .myapp.io)

[EDIT]
Может быть, вы можете добавить DNS записей динамически через API в CloudFlare (https://api.cloudflare.com/#dns-records-for-a-zone-create-dns-record)
(я не пробовал, что ...)

Обход:

Как вы сказали:

  1. Оплатить CloudFlare Enterprise
  2. Купить подстановочный сертификат SSL + Heroku SSL SNI (https://devcenter.heroku.com/articles/ssl-beta)

Надеется, что это поможет.

Смежные вопросы