https托管在根域

时间:2014-09-08 21:37:55

标签: https parse-platform hosting cloud-hosting

我在裸域上运行我的解析应用程序。 Parse并没有让我的生活轻松。

起初我努力设置它,因为大多数DNS托管服务不允许根域上的CNAME,而Parse需要CNAME。

决定尝试使用CloudFlare的CNAME展平,最后通过在[hostname key] .example.com下设置CNAME来完成工作。 Parse不允许我在没有主机名密钥的情况下进行设置,因为example.com不是一个真正的CNAME(它被CloudFlare翻译成木头下的A记录)。

但我想在HTTPS下运行我的网站,所以我注册了一个对“https:// example.com”和“https:// www.example.com”都有效的证书。

再次Parse并不容易。首先,它不接受我的证书,因为主机名不匹配。我想也许它试图将它与cert(www.example.com)的子域进行比较,并且与我的app域(example.com)不匹配。

我在[主机名密钥]创建了另一个CNAME .www.example.com poiting到我的parseapp.com网址(不想更改www.domain.com,因为它已经专注于另一个重定向到domain.com的服务),将我的应用主机名更改为www.example.com,它最终接受了我的证书! Yeahhh!

将应用主机名更改回example.com并尝试在浏览器中访问它,但加载和结束失败需要永远。 如果我将我的应用程序更改为在“https:// www.example.com”(带有www子域的安全站点)上运行,那么它可以正常工作。

所以我可以在http://example.com(不安全,没有www)或“https:// www.example.com”(使用www安全)中运行我的应用。

为什么Parse使得在根域上运行应用程序变得如此困难?

为了能够在根域中运行安全应用,我需要做些什么吗?

1 个答案:

答案 0 :(得分:1)

现在大多数网络服务都是围绕CNAME的想法设计的:它们为您提供了CNAME,您应该将您的主机名别名为该名称。

但是,正如您所指出的,CNAME具有DNS协议RFC所施加的某些限制,并且无法用于映射顶点域。

某些DNS公司(例如DNSimpleDNS Made Easy)提供类似CNAME的记录类型,可用于将根域映射到云服务提供的主机名。使用这些服务还可以更轻松地配置SSL证书。

说到SSL证书,请注意当您为example.comwww.example.com购买单名证书时,它仅对该特定主机名有效。如果您购买www.example.com,大多数证书颁发机构还将包含相应的顶级域名,但您需要咨询您的SSL证书提供商。

最后但并非最不重要的是,将HTTP重定向到HTTPS流量的能力实际上取决于您的服务提供商,在本例中为parse.com。不幸的是,这些服务不强制使用HTTPS并不罕见。 Heroku目前正在做同样的事情,当你启用HTTPS时,他们不会强制HTTP到HTTPS。

如果有办法应用此类重定向,您应该与他们核实,因为唯一的方法是在服务器级别或应用级别应用它。您无法应用重定向,例如,在DNS级别。