我正在开发一个Ruby on Rails SaaS应用程序,每个公司都有一个自定义子域名 . 当公司注册时,用户将被重定向到她的subdomain.myapp.io .
该应用程序托管在Heroku上,DNS由CloudFlare管理 . 我使用CloudFlare提供的免费SSL功能,该功能与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 . 对于通配符子域(Entreprise计划用户除外),无法使用CloudFlare功能(例如SSL Full) .
我想我需要为我的域购买通配符SSL证书(每年115美元)并添加SSL endpoints Heroku附加组件(每月7美元) . 我错了吗?
1 回答
Short answer:
您无法在CloudFlare(免费计划)上为子域提供免费的通配符SSL(完全保护) .
Long answer:
我的意思是在CloudFlare(免费计划)中使用通配符,绕过CloudFlare代理保护和加速(没有橙色 Cloud ),因此将使用您的原始服务器SSL证书 . 因此,要启用SSL,您需要为每个子域添加CNAME记录( Cloud 图标应为橙色) .
(如果您已经拥有* .myapp.io,则无需在Heroku中为自定义域添加任何记录)
[EDIT]
也许你可以通过CloudFlare的API动态添加DNS记录(https://api.cloudflare.com/#dns-records-for-a-zone-create-dns-record)
(我没试过......)
Workaround:
如你所说:
支付CloudFlare Enterprise
购买通配符SSL证书Heroku SSL SNI(https://devcenter.heroku.com/articles/ssl-beta)
希望它会有所帮助 .