Custom domains with Azure Static Web Apps
By default, Azure Static Web Apps provides an autogenerated domain name for your website, but you can point a custom domain to your site. Free SSL/TLS certificates are automatically created for the autogenerated domain name and any custom domains you may add.
When you map a custom domain to a static web app, you have a few options available, which include configuring subdomains and an apex domain.
The following table includes links to articles that demonstrate how to configure a custom domain based provider type. 1
Action | Using... | Using... |
---|---|---|
Set up a domain with the www subdomain |
Azure DNS | External provider |
Set up an apex domain | Azure DNS | External provider |
1 Some registrars like GoDaddy and Google don't support domain records that affect how you configure your apex domain. Consider using Azure DNS with these registrars to set up your apex domain.
Note
Adding a custom domain to a preview environment is not supported. Unicode domains, including Punycode domains and the xn--
prefix are also not supported.
About domains
Setting up an apex domain is a common scenario to configure once your domain name is set up. Creating an apex domain is achieved by configuring an ALIAS
or ANAME
record or through CNAME
flattening. Some domain registrars like GoDaddy and Squarespace (formerly Google) don't support these DNS records. If your domain registrar doesn't support all the DNS records you need, consider using Azure DNS to configure your domain.
Alternatively, for domain registrars that don't support ALIAS
records, ANAME
records or CNAME
flattening, you can configure an A
record for your static web app. This configuration directs traffic to a single regional host of your static web app. Using A
records isn't recommended as your application no longer benefits from global distribution, and this type of setup could affect application performance if your traffic is globally distributed.
Note
CNAME
record maps a domain name to another domain (or subdomain) whereas A
record maps a domain name to an IP address. If the IP address changes, a CNAME
entry is still valid, unlike A
record. Let’s say you have WebApp1 and you would like users to access it from https://www.contoso.com. You can do it in two possible ways: you can create a CNAME
record and map it to WebApp1.azurestaticapps.net. Alternatively, you can create an A
record and map it to the IP address of WebApp1.
The following are terms you might encounter as you set up a custom domain.
Apex or root domains: Given the domain
www.example.com
, thewww
prefix is known as the subdomain, while the remaining segment ofexample.com
is referred to as the apex domain.Domain registrar: A registrar verifies the availability of a domain sells the rights to purchase a domain name.
DNS zone: A Domain Name System (DNS) zone hosts the DNS records associated to a specific domain. There are various records available which direct traffic for different purposes. For example, the domain
example.com
may contain several DNS records. One record handles traffic formail.example.com
(for a mail server), and anotherwww.example.com
(for a website).DNS hosting: A DNS host maintains DNS servers that resolve a domain name to a specific IP address.
Name server: A name server is responsible for storing the DNS records for a domain.
For custom domain verification to work with Static Web Apps, the DNS must be publicly resolvable. After the domain is added, one of the following conditions must be met for automatic certificate renewal to work:
Ensure that the public internet
CNAME
DNS record used to add the custom domain to the Static Web App viaCNAME
validation is still present. This option is only valid ifCNAME
validation was used to add the domain to the static web app.Ensure that the custom domain resolves to the static web app over public internet. This option is valid regardless of the validation method used to add the domain to the web app. This approach is valid even when you enable private endpoints. The purpose of a private endpoint for Static Web Apps is to block internet access to the site contents, but not to block internet DNS resolution to the site.
Zero downtime migration
You may want to migrate a custom domain currently serving a production website to your static web app with zero downtime. DNS providers don't accept multiple records for the same name and host, so you can separately validate your ownership of the domain and route traffic to your web app.
Open your static web app in the Azure portal.
Add a TXT record for your custom domain (APEX or subdomain). Instead of entering the Host value as displayed, enter the Host in your DNS provider as follows:
- For APEX domains, enter
_dnsauth.www.<YOUR-DOMAIN.COM>
. - For subdomains, enter
_dnsauth.<SUBDOMAIN>.<YOUR-DOMAIN.COM>
.
- For APEX domains, enter
Once your domain is validated, you can migrate your traffic to your static web app by updating your
CNAME
,ALIAS
, orA
record to point to your default host name
Next steps
Use the following links for steps on how to set up your domain based on your provider.