具有CloudFlare和Heroku的通配符子域上的SSL

Mic*_*let 7 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.
Run Code Online (Sandbox Code Playgroud)

Heroku域名设置:

myapp.io
*.myapp.io
Run Code Online (Sandbox Code Playgroud)

这样可行,但子域上没有SSL.对于通配符子域(Entreprise计划用户除外),无法使用CloudFlare功能(例如SSL Full).

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

Ren*_*uki 7

简短回答:
您无法在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)

希望它会有所帮助.