使用CloudFlare和Heroku

时间:2016-05-25 14:23:45

标签: ssl heroku cloudflare

我正在开发一个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。无法对通配符子域使用CloudFlare功能(例如SSL Full)(Entreprise计划用户除外)。

我想我需要为我的域购买通配符SSL证书(每年115美元)并添加 SSL端点 Heroku附加组件(每月7美元)。我错了吗?

1 个答案:

答案 0 :(得分:5)

简答:
您无法在CloudFlare(免费方案)上为子域提供免费的通配符SSL(完全保护)。

答案很长:
我的意思是在CloudFlare(免费计划)中使用通配符,绕过CloudFlare代理保护和加速(没有橙色云),因此将使用您的原始服务器SSL证书。因此,要启用SSL,您需要为每个子域添加CNAME记录(云图标应为橙色)。

  

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

(如果您已经拥有* .myapp.io,则无需在Heroku中为自定义域添加任何记录)

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

解决方法:

正如你所说:

  1. 支付CloudFlare Enterprise
  2. 购买通配符SSL证书+ Heroku SSL SNI(https://devcenter.heroku.com/articles/ssl-beta
  3. 希望它会有所帮助。