我在裸域上运行我的解析应用程序。 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使得在根域上运行应用程序变得如此困难?
为了能够在根域中运行安全应用,我需要做些什么吗?
答案 0 :(得分:1)
现在大多数网络服务都是围绕CNAME的想法设计的:它们为您提供了CNAME,您应该将您的主机名别名为该名称。
但是,正如您所指出的,CNAME具有DNS协议RFC所施加的某些限制,并且无法用于映射顶点域。
某些DNS公司(例如DNSimple或DNS Made Easy)提供类似CNAME的记录类型,可用于将根域映射到云服务提供的主机名。使用这些服务还可以更轻松地配置SSL证书。
说到SSL证书,请注意当您为example.com
或www.example.com
购买单名证书时,它仅对该特定主机名有效。如果您购买www.example.com
,大多数证书颁发机构还将包含相应的顶级域名,但您需要咨询您的SSL证书提供商。
最后但并非最不重要的是,将HTTP重定向到HTTPS流量的能力实际上取决于您的服务提供商,在本例中为parse.com。不幸的是,这些服务不强制使用HTTPS并不罕见。 Heroku目前正在做同样的事情,当你启用HTTPS时,他们不会强制HTTP到HTTPS。
如果有办法应用此类重定向,您应该与他们核实,因为唯一的方法是在服务器级别或应用级别应用它。您无法应用重定向,例如,在DNS级别。