In the previous post, we introduced how to host a webassembly application on azure storage. In this post, we'll introduce how to enable HTTPS and custom domain for your application.
1. Eable HTTPS
Azure storage doesn't support HTTPS protocol. You need use Azure CDN to enable HTTPS. Login to azure portal, oepn your storage account, select Azure CDN
on the left panel, create a new CDN endpoint:
Make sure Origin hostname
is pointed to the static website.
After CDN endpoint is created, click it, you should see the Endpoint hostname
on the right side. It should be an https url:
Open the url in the browser, you should see your applicaion.
2. Redirect HTTP to HTTPS
HTTP is not secure. You can redirect all HTTP requests to HTTPS endpoint. Select Rules engine
on the right side, click Add rule
on the top,
Add a Request Protocol
and Url Redirect
like this:
After saving, use http protocol to access your CDN endpoint, you should be redirect to https protocol.
3. Add custom domain
Click Custom domains
on the right side, and click + Custom domain
on the top:
You should be navigated to a page where you can add custom domain:
Before adding your domain, you need go to your domain provider, add a CNAME
record of your domain pointed to your CDN endpoint. Like in this example,
our domain is www.devtest.pm
, our endpoint host name is myappdevtest.azureedge.net
, so we add a CNAME
record in your DNS like this:
After domain added, click it, you can enable HTTPS for your custom domain:
Select Certificate management typ
as CDN managed
, Azure will create a SSL certificate for your domain and will renew it automatically. All these
are free.
The whole process might take 5 to 10 minutes. When it is done, you should be able to access your website via your domain.
4. Enable custom root domain
Enabling root domain, like xxxx.dom
instead of www.xxx.dom
, is more complex. Because azure doesn't support issuing SSL certificate for root domain.
You need create a SSL certificate by yourself and upload the certificate to azure. I don't want to make this post too long. Let's leave this topic to
the next post.