I wanted to create this tutorial for a long time. How to map a naked domain on an Azure resource. It looks so complicated, but once you know what to do, it's kind of simple in fact. In this post, I will share the three simple steps to do exactly this.
Step 1: Add Custom Domain
The first step is to map a domain on the application. The method I will explain uses a "www" domain (example, www.fboucher.dev). To map directly a naked domain (example, fboucher.dev), you would need to buy a wildcard certificate. However, I will show you in step three how to walk around this issue by using DNS rules.
From the Azure portal, open the Azure Function or App Service. From the left menu, search for "custom", click the Custom domains option. In this panel, click the button Add custom domain, and enter your
Click the Validate button and follow the instruction to make the connection between the App Service and your domain provider.
Step 2: Adding a Certificate
Now that your custom domain is mapped, let's fix the "not secure" warning by adding a certificate. From the Azure portal return in the App blade. Repeat the previous search for "custom", and select the option TLS/SSL settings. Click the Private Key Certificates, and the Create App Service Managed Certificate button. Select the domain previously added and save. It will take a few moments to create the certificate.
Go back in the Custom domains blade and click the Add binding button. Select the domain and certificate, don't forget to select the SNI SSL option and click the Add Binding button.
Step 3: Create the DNS Rules
Create an account in cloudflare.com and add a site for your domain. We will need to customize the DNS and create some Page Rules.
On the cloudflare.com, note the 2 nameservers addresses. Go to the origin name provider (in my case, godaddy) and replace the names of the nameservers with the value found on cloudflare.
Create a rule that will redirect all the incoming traffic from the naked-domain to www.domain. On the option on the top, click the Pages Rules (B). Then click the Button Create Page Rule.
In the field for If the URL matches: enter the naked-domain follow by
/*. That will match everything coming from that URL.
For the settings, select Forwarding URL and 301- Permanent Redirect. Then the destination URL should be https://www
. with your domain and /$1.
- 22nd December, 2020: Initial version