我有一个 Web 应用程序,用户可以在其中创建具有不同子域的单独网站,例如 subdomain1.mydomain.com subdomain2.mydomain.com
我通过 GoDaddy 购买了域名,并且为我的托管服务设置了通配符 A 记录(即 * 指向 HOSTING_IP)。
我正在尝试使用 SSL 证书设置特定子域 SECURE。我在 GoDaddy 上创建了一个 CName,并将其指向我设置 SSL 的特定服务器,即 secure.mydomain.com 指向 SSL_IP
目前,secure.mydomain.com 仍指向 HOSTING_IP。有没有办法将 CNAME 优先于 ARecord?有人在 GoDaddy 上这样做过吗?或者你能推荐我可以使用的其他服务来设置它吗?或者,有没有更好的方法可以让我做到这一点?
提前谢谢了!
答案1
如果 SSL_IP 和 HOSTING_IP 是两个不同的 IP 地址,您只需在 HOSTING_IP 记录之前创建 SSL_IP 记录。如果 godaddy 的 DNS 服务不允许您这样做,请查看类似 everydns.net 的服务,它是免费的,而且在我看来更好。
答案2
通配符记录的工作方式是特定条目将覆盖所有可能的通配符。
例如(取自 RFC 1034):
*.exmaple.com MX 10 a.x.COM
a.x.com IN A 1.2.3.4
a.x.com MX 10 a.x.com
需要明确说明 axcom 的 MX 记录,因为“在 AXCOM 子树中,*.X.COM 处的通配符的效果被 AXCOM 的明确数据所抑制。另请注意,...AXCOM 处的明确 MX 数据是必需的”。
现在,您已经用散文解释了您的情况,而不是仅仅清楚地列出您的设置。特别是:“我在 GoDaddy 上创建了一个 CName,并将其指向我设置 SSL 的特定服务器,即 secure.mydomain.com 指向 SSL_IP”没有任何意义。CNAME RR 指向名称,而不是 IP。
正确的配置是:
*.example.com IN A 1.2.3.4 ; HOSTING_IP
secure.example.com IN A 2.3.4.5 ; SSL_IP
未使用 CNAME。这应该可行。
编辑:此外,选择通配符而不是特定 RR 时的顺序并不重要。通配符可以先出现,但特定 RR 仍将被选中。