2016-05-25 106 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. 收費希望這將有助於。