2016-05-25 65 views
4

我正在为每个公司使用带有自定义子域的Ruby on Rails SaaS应用程序。当公司注册时,用户被重定向到她的subdomain.myapp.io带有CloudFlare和Heroku的通配符子域上的SSL

该应用程序托管在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)。

我想我需要为我的域名($ 115/year)购买通配符SSL证书,并添加SSL端点 Heroku附加组件($ 7 /月)。我错了吗?

回答

3

简短的回答:
你不能有一个免费的通配符SSL(全保护)的子域上的CloudFlare(免费计划)。

龙答:
我的意思是使用与CloudFlare的(免费计划)通配符,CloudFlare的代理保护和加速绕过(无橙色云)所以你的原始服务器的SSL证书将被用来代替。因此,要启用SSL,您需要为每个子域添加CNAME记录(云图标应为橙色)。

例如:
foo.myapp.io。 300 IN CNAME myapp.herokuapp.com。
bar.myapp.io。 300 IN CNAME myapp.herokuapp.com。

(你并不需要添加任何记录用于自定义域在Heroku的,如果你已经有* .myapp.io)

[编辑]
也许你可以添加DNS记录通过CloudFlare的API动态(https://api.cloudflare.com/#dns-records-for-a-zone-create-dns-record
(我没有尝试...)

解决方法:

至于你说:

对CloudFlare的企业
  • 购买一个通配符SSL证书+ Heroku的SSL SNI(https://devcenter.heroku.com/articles/ssl-beta
    1. 收费希望这将有助于。