首页 文章

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

提问于
浏览
5

我正在开发一个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 回答

  • 5

    Short answer:
    您无法在CloudFlare(免费计划)上为子域提供免费的通配符SSL(完全保护) .

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

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

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

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

    Workaround:

    如你所说:

    希望它会有所帮助 .

相关问题