我有一个托管 asp.net 网站的 Azure 应用服务。我通过 GoDaddy 有一个自定义域,我通过 Azure 中的 DNS 区域进行管理。我找不到任何有关如何支持根域或“裸”域流量的文档。
我有一个来自 Azure 的标准托管证书 - 我的理解是我不需要通配符证书来完成我想要做的事情:
颁发的证书可保护根域和 www 子域。
自定义域和证书适用于“www.mydomain.com”,但在点击“mydomain.com”时会解析为 404 错误。
我的 DNS 区域有以下记录:
(加上 NS 和 SOA)
我发现了一些文章提到使用域名转发(来自 GoDaddy)、Front Door(35 美元/月)和流量管理器(也不是免费的)。我如何支持处理我的“根”域的流量?
您无需购买域名转发。
当您的客户端(网络浏览器)请求该网站时,它会随请求发送主机地址。这样服务器就能够托管多个网站,并在共享托管场景中区分您的请求与请求不同网站的用户。
GET / HTTP/1.1
Host: mywebsite.azurewebsites.com
User-Agent: Mozilla/5.0
Accept: text/html
当您请求 GoDaddy 根域时,Azure Web 服务器场会收到
Host: www.mydomain.com
,但它不知道要服务哪个应用程序。
要解决此问题,您必须将
www.mydomain.com
作为自定义域添加到您的 Web 应用程序中。从您的 DNS 记录来看,您似乎已经在 Azure 中验证了您的域,因此您可以跳过一些常规步骤。
导航到 Azure 门户中的 Web 应用程序:
添加自定义域:
使用 SSL 确保安全(可选): 为了让客户端建立 TLS/SSL,它必须根据浏览器地址栏中指定的请求的完全限定域名 (FQDN) 验证远程证书的公用名 (CN) 或使用者备用名称 (SAN)。如果它们不匹配,那么您将在浏览器中显示错误/警告。
在您的情况下,您可能会收到带有 CN
*.azurewebsites.com
的 MS/Azure 证书。这与 mydomain.com
不匹配,因此在使用 https://...
方案时会出现错误。
要解决此问题,您必须获得
mydomain.com
的证书。大多数证书颁发机构都会免费向您出售一个包含 www
子域作为 SAN 的证书; Azure 应用服务托管证书可以。
将自定义域添加到 Azure 中的 Web 应用程序后,应该可以使用您的自定义域名进行访问。