{"id":1162,"date":"2019-05-27T01:37:32","date_gmt":"2019-05-27T01:37:32","guid":{"rendered":"https:\/\/www.ciraltos.com\/?p=1162"},"modified":"2023-03-23T23:18:17","modified_gmt":"2023-03-24T04:18:17","slug":"how-to-configure-an-azure-cdn","status":"publish","type":"post","link":"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/","title":{"rendered":"How to configure an Azure CDN"},"content":{"rendered":"\n<p>A Content Delivery Network, or CDN, is a globally\ndistributed network for delivering, well, content.&nbsp; Content can include images, videos, CSS and\nany other asset used for providing web services.&nbsp; The advantages to a CDN include: caching data\ncloser to the users to increase web site performance, improving reliability by\nleveraging a global caching network and reducing bandwidth by shifting traffic\nto the CDN.&nbsp; <\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Microsoft Azure provides several CDN options backed by Azure, Verizon or Akamai.&nbsp; This post covers deploying a CDN backed by Azure with a custom domain name.&nbsp; Azure CDN is backed by Azure Front Door Service and is suitable for general web delivery, video streaming, and large files.&nbsp; Azure CDN supports custom DNS names and provides a free SSL certificate for custom host names.<\/p>\n\n\n\n<h2>Video Version Here:<\/h2>\n\n\n\n<p><a href=\"https:\/\/youtu.be\/1wcGZz9qn8M\">https:\/\/youtu.be\/1wcGZz9qn8M<\/a><\/p>\n\n\n\n<h2>What is a CDN<\/h2>\n\n\n\n<p>At a high level, Azure CDN works by caching data from a\nsource to the CDN based on the request of the client.&nbsp; The client requests the content based on a\nspecific DNS hostname.&nbsp; The CDN determines\nthe location of the client based on the DNS lookup.&nbsp; Content is copied from the source and cached locally\nto the client. The next time a client requests the content, it\u2019s pulled from\nthe local cached, speeding delivery by moving the content closer to the client.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/cdn\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/CDN-Overview-1-1024x517.png\" alt=\"\" class=\"wp-image-1168\" width=\"512\" height=\"259\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/CDN-Overview-1-1024x517.png 1024w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/CDN-Overview-1-300x151.png 300w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/CDN-Overview-1-768x388.png 768w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/CDN-Overview-1.png 1827w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/a><figcaption class=\"wp-element-caption\">CDN Overview Animation<\/figcaption><\/figure>\n\n\n\n<h2>Create the Storage Account<\/h2>\n\n\n\n<p>The example below uses an Azure Storage Account blob\ncontainer to host the source content.&nbsp;\nStart by creating a new Resource Group and Storage Account.&nbsp; The Storage Account and CDN will go into the\nsame Resource Group.&nbsp; The Storage Account\ncan be V1 or V2, for this example, I\u2019m creating a V2 Storage Account.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/New-Storage-Account.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/New-Storage-Account.png\" alt=\"\" class=\"wp-image-1173\" width=\"388\" height=\"310\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/New-Storage-Account.png 775w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/New-Storage-Account-300x240.png 300w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/New-Storage-Account-768x613.png 768w\" sizes=\"(max-width: 388px) 100vw, 388px\" \/><\/a><figcaption class=\"wp-element-caption\">New Storage Account<\/figcaption><\/figure>\n\n\n\n<p>Once the storage account is created, create a new blob\ncontainer to store the CDN content.&nbsp; Set\nthe <em>Public Access Level<\/em> to <em>Blob (anonymous read access for blobs only).\n<\/em>the CDN will only propagate content that is publicly accessible.&nbsp; As this is content to a public web site,\nmaking the content publicly available is necessary.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/New-Public-Container.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/New-Public-Container.png\" alt=\"\" class=\"wp-image-1174\" width=\"364\" height=\"255\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/New-Public-Container.png 485w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/New-Public-Container-300x210.png 300w\" sizes=\"(max-width: 364px) 100vw, 364px\" \/><\/a><figcaption class=\"wp-element-caption\"> <br>New Public Container<\/figcaption><\/figure>\n\n\n\n<h2>Create the CDN<\/h2>\n\n\n\n<p>Next, go to <em>Azure CDN <\/em>under\n<em>Blob service <\/em>in the Storage Account\nmanagement blade.&nbsp; From there, set up a\nnew CDN profile.&nbsp; A profile can hold\nmultiple endpoints, providing they are the same pricing tier and provider.&nbsp; Enter a name for the new profile and move\nonto pricing tiers.&nbsp; <\/p>\n\n\n\n<p>There are four options for Pricing tiers.&nbsp; I use <em>Standard\nMicrosoft<\/em> in this example.&nbsp; More\ninformation on the different pricing options can be found here.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/CDN-Tiers.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" width=\"119\" height=\"110\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/CDN-Tiers.png\" alt=\"\" class=\"wp-image-1176\"\/><\/a><figcaption class=\"wp-element-caption\"> CDN Pricing Tiers<\/figcaption><\/figure>\n\n\n\n<p>Give the CDN an endpoint name after the pricing tier is\nselected.&nbsp; This name is part of the URL\nand has to be globally unique.&nbsp; This will\nalso be the CNAME alias if using custom domain names.&nbsp; <\/p>\n\n\n\n<p>The finished endpoint will look similar to below.&nbsp; Click <em>Create<\/em>\nto set up the endpoint.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/New-CDN-Endpoint.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/New-CDN-Endpoint.png\" alt=\"\" class=\"wp-image-1177\" width=\"356\" height=\"276\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/New-CDN-Endpoint.png 475w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/New-CDN-Endpoint-300x232.png 300w\" sizes=\"(max-width: 356px) 100vw, 356px\" \/><\/a><figcaption class=\"wp-element-caption\"> New CDN Endpoint <\/figcaption><\/figure>\n\n\n\n<p>The CDN Endpoint is now running, but there is nothing in the source Storage Account for the CDN to serve.&nbsp; Any simple HTTP code will work for testing.&nbsp; I will deploy a static web site available <a href=\"https:\/\/github.com\/Azure-Samples\/html-docs-hello-world.git\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"here  (opens in a new tab)\">here <\/a>For this example.<\/p>\n\n\n\n<p>Azure Storage Explorer is used to upload the content to the\nroot of the \u201csource\u201d container setup previously.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Azure-Storage-Explorer.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Azure-Storage-Explorer.png\" alt=\"\" class=\"wp-image-1178\" width=\"523\" height=\"343\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Azure-Storage-Explorer.png 697w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Azure-Storage-Explorer-300x197.png 300w\" sizes=\"(max-width: 523px) 100vw, 523px\" \/><\/a><figcaption class=\"wp-element-caption\"> Azure Storage Explorer <\/figcaption><\/figure>\n\n\n\n<p>Now that the CDN is set up and content is available, it\u2019s\nready to test.&nbsp; In Azure, Go to <em>CDN<\/em>, Select the <em>CDN Profile <\/em>and the <em>Endpoint<\/em>\nwe just created.&nbsp; Under settings, there\nis an option for <em>Endpoint hostname<\/em>.&nbsp; This is the URL used to access the\ncontent.&nbsp; <\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/CDN-URL.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/CDN-URL.png\" alt=\"\" class=\"wp-image-1179\" width=\"488\" height=\"98\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/CDN-URL.png 976w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/CDN-URL-300x60.png 300w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/CDN-URL-768x154.png 768w\" sizes=\"(max-width: 488px) 100vw, 488px\" \/><\/a><figcaption class=\"wp-element-caption\"> CDN URL <br><\/figcaption><\/figure>\n\n\n\n<p>Clicking on the URL will display the message \u201cThis XML file\ndoes not appear to have any style information..\u201d.&nbsp; <\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/XML-Message.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" width=\"744\" height=\"180\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/XML-Message.png\" alt=\"\" class=\"wp-image-1180\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/XML-Message.png 744w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/XML-Message-300x73.png 300w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><\/a><figcaption class=\"wp-element-caption\"> XML Message <br><\/figcaption><\/figure>\n\n\n\n<p>This is expected.&nbsp; A\nCDN is not a web server.&nbsp; It doesn\u2019t\nassume you are looking for index.html if you don\u2019t add it to the path, and it\nwon\u2019t redirect to a virtual directory.&nbsp; A\nCDN is used to reference content by an absolute and explicit path.&nbsp; For my example, I uploaded the content,\nincluding the *index.html* file to the *source* directory.&nbsp; If I add \/source\/index.html to the end of the\nhostname I can access the web content.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Web-Content.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"338\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Web-Content-1024x338.png\" alt=\"\" class=\"wp-image-1181\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Web-Content-1024x338.png 1024w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Web-Content-300x99.png 300w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Web-Content-768x254.png 768w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Web-Content.png 1429w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Congratulations, if you are following along you now have a\nfunctioning CDN.&nbsp; Before we move on,\nlet\u2019s cover some of the features you may need to use for administering the CDN.<\/p>\n\n\n\n<h2>The Purge<\/h2>\n\n\n\n<p>Go back to the CDN Endpoint.&nbsp;\nAt the <em>Overview<\/em> blade, notice\nthe four buttons at the top.&nbsp; <\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Overview-Buttons.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" width=\"364\" height=\"47\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Overview-Buttons.png\" alt=\"\" class=\"wp-image-1183\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Overview-Buttons.png 364w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Overview-Buttons-300x39.png 300w\" sizes=\"(max-width: 364px) 100vw, 364px\" \/><\/a><figcaption class=\"wp-element-caption\"> Overview Buttons <\/figcaption><\/figure>\n\n\n\n<p>I will cover the <em>Custom\nDomain<\/em> option later and you can probably figure out that <em>Stop <\/em>will stop the CDN and <em>Delete<\/em> will delete it.&nbsp; The <em>Purge<\/em>\nOption is helpful if you update content at the source and need to clear\noutdated content from the global CDN cache.&nbsp;\nClick <em>Purge <\/em>and add the path\nto the content to remove from the cache.&nbsp;\nYou can also use a wildcard * to remove all content from a given directory.&nbsp; Select the <em>Purge All <\/em>option to remove all content from the global cache.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Content-Purge.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Content-Purge.png\" alt=\"\" class=\"wp-image-1184\" width=\"306\" height=\"265\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Content-Purge.png 408w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Content-Purge-300x260.png 300w\" sizes=\"(max-width: 306px) 100vw, 306px\" \/><\/a><figcaption class=\"wp-element-caption\">Content Purge <\/figcaption><\/figure>\n\n\n\n<p>There are other options under <em>Settings<\/em>.&nbsp; You can update the\ncontent source, change Compression method and Caching rules as well as\nimplement Geo Filtering.&nbsp; Go to <em>Origin<\/em> and notice that adding an origin\npath of <em>\/source<\/em> from the example in\nthis post will eliminate the need to add \/source to the URL.&nbsp; The option to remove HTTP or HTTPS and change\nthe origin port is also available under <em>Origin<\/em>\nsettings.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Origin.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Origin.png\" alt=\"\" class=\"wp-image-1185\" width=\"308\" height=\"266\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Origin.png 411w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Origin-300x258.png 300w\" sizes=\"(max-width: 308px) 100vw, 308px\" \/><\/a><figcaption class=\"wp-element-caption\"> Origin <\/figcaption><\/figure>\n\n\n\n<p>So far, we have used an azureedge.net domain to access the\nCDN.&nbsp; What if you want to add your own\ncustom domain?&nbsp; This can be done in two\nsteps.&nbsp; The first step is to add a CNAME\nto your DNS that points your custom domain and hostname to the azureedge.net\ndomain of the CDN.&nbsp; For my example, I\nadded a CNAME record that points cdn.ciraltos.com to cirtestcdn.azureedge.net.&nbsp; This record has to be added and propagated <em>before<\/em> continuing to the next step.&nbsp; Each DNS provider is different, consult their\ndocumentation for help added a CNAME record.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Add-CNAME.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Add-CNAME.png\" alt=\"\" class=\"wp-image-1186\" width=\"506\" height=\"213\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Add-CNAME.png 675w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Add-CNAME-300x126.png 300w\" sizes=\"(max-width: 506px) 100vw, 506px\" \/><\/a><figcaption class=\"wp-element-caption\"> Add CNAME <\/figcaption><\/figure>\n\n\n\n<p>Once the alias record is added <em>and available<\/em>, go to the <em>Overview\n<\/em>or <em>Custom Domain <\/em>blade in the\nportal and click on <em>+ Custom domain<\/em>\nat the top of the screen.&nbsp; This brings\nyou to the <em>Add a custom domain<\/em>\nwindow.&nbsp; Add a custom hostname to the <em>Custom hostname<\/em> field.&nbsp; This step validates external DNS.&nbsp; If Azure can\u2019t resolve the new hostname to\nthe endpoint you will see an error like below.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Add-Alias-Fail.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Add-Alias-Fail.png\" alt=\"\" class=\"wp-image-1187\" width=\"227\" height=\"262\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Add-Alias-Fail.png 303w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Add-Alias-Fail-260x300.png 260w\" sizes=\"(max-width: 227px) 100vw, 227px\" \/><\/a><figcaption class=\"wp-element-caption\"> Add Alias Fail <\/figcaption><\/figure>\n\n\n\n<p>Once DSN is ready, a green check mark will show next to the\ncustom hostname.&nbsp; Click <em>Add <\/em>to add the custom hostname.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Add-Custom-Hostname.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Add-Custom-Hostname.png\" alt=\"\" class=\"wp-image-1188\" width=\"221\" height=\"254\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Add-Custom-Hostname.png 295w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Add-Custom-Hostname-261x300.png 261w\" sizes=\"(max-width: 221px) 100vw, 221px\" \/><\/a><figcaption class=\"wp-element-caption\"> Add Custom Hostname <\/figcaption><\/figure>\n\n\n\n<p>Once finished, the new hostname will resolve to the CDN\nendpoint. <\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Custom-URL-Web-Page.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Custom-URL-Web-Page.png\" alt=\"\" class=\"wp-image-1189\" width=\"538\" height=\"250\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Custom-URL-Web-Page.png 717w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Custom-URL-Web-Page-300x139.png 300w\" sizes=\"(max-width: 538px) 100vw, 538px\" \/><\/a><figcaption class=\"wp-element-caption\"> Custom URL Web Page <\/figcaption><\/figure>\n\n\n\n<p>The big red certificate error may have caught your\nattention.&nbsp; There is a simple reason for\nthis.&nbsp; Microsoft provides a valid certificate\nfor the azureedge.net domain.&nbsp; I don\u2019t\n(yet) have a cert for the custom domain and have to accept the certificate\nwarning to access the page.<\/p>\n\n\n\n<p>What about HTTP and custom domains you may ask?&nbsp; That\u2019s a good question. The CDN clearly\nindicates that HTTP and HTTPS are supported.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/HTTP-and-HTTPS-Support.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/HTTP-and-HTTPS-Support.png\" alt=\"\" class=\"wp-image-1190\" width=\"293\" height=\"107\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/HTTP-and-HTTPS-Support.png 391w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/HTTP-and-HTTPS-Support-300x109.png 300w\" sizes=\"(max-width: 293px) 100vw, 293px\" \/><\/a><figcaption class=\"wp-element-caption\"> HTTP and HTTPS Support <\/figcaption><\/figure>\n\n\n\n<p>However, when I try to access the custom URL with\nnon-encrypted HTTP (or azureedge.net for that matter) I get the message below\n\u201cThe account being accessed does not support HTTP.\u201d<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/The-Account-Does-Not-Support-HTTP.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/The-Account-Does-Not-Support-HTTP.png\" alt=\"\" class=\"wp-image-1191\" width=\"432\" height=\"133\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/The-Account-Does-Not-Support-HTTP.png 576w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/The-Account-Does-Not-Support-HTTP-300x92.png 300w\" sizes=\"(max-width: 432px) 100vw, 432px\" \/><\/a><figcaption class=\"wp-element-caption\"> The Account Does Not Support HTTP <\/figcaption><\/figure>\n\n\n\n<p>The clue is the Account name in the error message.&nbsp; The problem isn\u2019t the CDN, it\u2019s the storage\naccount.&nbsp; Go to the Storage Account and\nopen the <em>Configuration<\/em> blade.&nbsp; Notice the option for <em>Secure transfer required<\/em> is set to enabled.&nbsp; This is the option forcing HTTPS.&nbsp; If you want to use a custom hostname on the\nCDN <strong>without<\/strong> SSL, <em>Secure transfer required<\/em> has to be\ndisabled on the storage account.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Storage-Account-Secure-Storage-Required.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Storage-Account-Secure-Storage-Required.png\" alt=\"\" class=\"wp-image-1193\" width=\"356\" height=\"293\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Storage-Account-Secure-Storage-Required.png 474w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Storage-Account-Secure-Storage-Required-300x247.png 300w\" sizes=\"(max-width: 356px) 100vw, 356px\" \/><\/a><figcaption class=\"wp-element-caption\"> Storage Account Secure Storage Required <\/figcaption><\/figure>\n\n\n\n<h2>Speaking of SSL<\/h2>\n\n\n\n<p>This is the last section, I promise (well, last of part\n1).&nbsp; Any serious webmaster will use SSL\nto deliver content.&nbsp; Functioning SSL\nrequires a Certificate.&nbsp; In this next\nsection, we are going to obtain and apply a web cert for the CDN.<\/p>\n\n\n\n<p>There are a couple of options to enable SSL.&nbsp; The first, and more complicated, is to bring\nyour own certificate.&nbsp; In this scenario,\nthe certificate is added to a Key Vault.&nbsp;\nOnce added, the CDN is granted access to the Key Vault and uses the cert\nto encrypt traffic.&nbsp; This option is necessary\nif using your own certificates.&nbsp; For this\nexample, I\u2019m going to use the free and easy option.<\/p>\n\n\n\n<p>The steps below use the &nbsp;CDN managed certificate.&nbsp; Microsoft uses Digicert to provision the\ncertificates.&nbsp; This is a free, managed\noption available as part of the CDN service.&nbsp;\nDomain ownership is validated by the CNAME mapping added when\nconfiguring the custom domain.&nbsp; <\/p>\n\n\n\n<p>There is one precaution you may want to consider before you\ngo to requesting the cert.&nbsp; If Digicert\ncan\u2019t validate your domain for any reason, it will default to email for\nvalidation.&nbsp; Digicert will email the\naddress listed in the WhoIs information on your domain.&nbsp; Digicert will also email the addresses listed\nbelow to validate ownership.&nbsp; Make sure\nyou have access to one of these addresses in the event CNAME validation fails.<\/p>\n\n\n\n<ul>\n<li>admin@&lt;your-domain-name.com&gt;<\/li>\n\n\n\n<li> administrator@&lt;your-domain-name.com&gt;<\/li>\n\n\n\n<li> webmaster@&lt;your-domain-name.com&gt;<\/li>\n\n\n\n<li> hostmaster@&lt;your-domain-name.com&gt;<\/li>\n\n\n\n<li> postmaster@&lt;your-domain-name.com&gt;<\/li>\n<\/ul>\n\n\n\n<p>Request the certificate from within the <em>Custom Domains <\/em>blade by simply turning <em>Custom domain HTTPS<\/em> on and selecting the <em>CDN managed<\/em> option.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"312\" height=\"159\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Custom-Domain-HTTPS.png\" alt=\"\" class=\"wp-image-1194\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Custom-Domain-HTTPS.png 312w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Custom-Domain-HTTPS-300x153.png 300w\" sizes=\"(max-width: 312px) 100vw, 312px\" \/><figcaption class=\"wp-element-caption\"> Custom Domain HTTPS <\/figcaption><\/figure>\n\n\n\n<p>The validation process is automatic, but not instantaneous.&nbsp; It took about an hour for this example to\nfinish.&nbsp; Below is the output once\ncompleted.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Cert-Provisioning-4.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Cert-Provisioning-4.png\" alt=\"\" class=\"wp-image-1195\" width=\"533\" height=\"549\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Cert-Provisioning-4.png 710w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Cert-Provisioning-4-291x300.png 291w\" sizes=\"(max-width: 533px) 100vw, 533px\" \/><\/a><figcaption class=\"wp-element-caption\"> Cert Provisioning 4 <\/figcaption><\/figure>\n\n\n\n<p>Now that the cert is provisioned the web site is accessible\nwithout a cert error.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Custom-HTTPS-URL.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/Custom-HTTPS-URL.png\" alt=\"\" class=\"wp-image-1196\" width=\"385\" height=\"232\" srcset=\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Custom-HTTPS-URL.png 513w, https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2019\/05\/Custom-HTTPS-URL-300x181.png 300w\" sizes=\"(max-width: 385px) 100vw, 385px\" \/><\/a><figcaption class=\"wp-element-caption\"> Custom HTTPS URL <\/figcaption><\/figure>\n\n\n\n<p>That is it.&nbsp; You now\nhave an enterprise-grade, fully functional HTTPS Content Distribution\nNetwork.&nbsp; <\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Content Delivery Network, or CDN, is a globally distributed network for delivering, well, content.&nbsp; Content can include images, videos, CSS and any other asset used for providing web services.&nbsp; The advantages to a CDN include: caching data closer to the users to increase web site performance, improving reliability by leveraging a global caching network &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/\"> <span class=\"screen-reader-text\">How to configure an Azure CDN<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":""},"categories":[2],"tags":[38,450,446,453,447,451,318,39,150,452,56,449,441,448],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to configure an Azure CDN - ciraltos<\/title>\n<meta name=\"description\" content=\"This post covers deploying a CDN backed by Azure with a custom domain name. Azure CDN is baked by Azure Front Door Service and is suitable for general web delivery, video streaming, and large files.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to configure an Azure CDN - ciraltos\" \/>\n<meta property=\"og:description\" content=\"This post covers deploying a CDN backed by Azure with a custom domain name. Azure CDN is baked by Azure Front Door Service and is suitable for general web delivery, video streaming, and large files.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/\" \/>\n<meta property=\"og:site_name\" content=\"ciraltos\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-27T01:37:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-24T04:18:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/CDN-Overview-1-1024x517.png\" \/>\n<meta name=\"author\" content=\"Travis Roberts\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ciraltos\" \/>\n<meta name=\"twitter:site\" content=\"@ciraltos\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Travis Roberts\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/\"},\"author\":{\"name\":\"Travis Roberts\",\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a\"},\"headline\":\"How to configure an Azure CDN\",\"datePublished\":\"2019-05-27T01:37:32+00:00\",\"dateModified\":\"2023-03-24T04:18:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/\"},\"wordCount\":1756,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a\"},\"keywords\":[\"blob\",\"blob storage\",\"CDN\",\"containter\",\"Content Delivery Network\",\"HTTP\",\"https\",\"storage\",\"storage account\",\"storage explorer\",\"web\",\"web service\",\"web site\",\"website\"],\"articleSection\":[\"Azure\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/\",\"url\":\"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/\",\"name\":\"How to configure an Azure CDN - ciraltos\",\"isPartOf\":{\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#website\"},\"datePublished\":\"2019-05-27T01:37:32+00:00\",\"dateModified\":\"2023-03-24T04:18:17+00:00\",\"description\":\"This post covers deploying a CDN backed by Azure with a custom domain name. Azure CDN is baked by Azure Front Door Service and is suitable for general web delivery, video streaming, and large files.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/www.ciraltos.com\/staging2\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to configure an Azure CDN\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#website\",\"url\":\"http:\/\/www.ciraltos.com\/staging2\/\",\"name\":\"ciraltos\",\"description\":\"cloud, technology and trends\",\"publisher\":{\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.ciraltos.com\/staging2\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a\",\"name\":\"Travis Roberts\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2023\/03\/Logo-1.png\",\"contentUrl\":\"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2023\/03\/Logo-1.png\",\"width\":5657,\"height\":3563,\"caption\":\"Travis Roberts\"},\"logo\":{\"@id\":\"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/www.ciraltos.com\",\"https:\/\/twitter.com\/ciraltos\"],\"url\":\"https:\/\/www.ciraltos.com\/staging2\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to configure an Azure CDN - ciraltos","description":"This post covers deploying a CDN backed by Azure with a custom domain name. Azure CDN is baked by Azure Front Door Service and is suitable for general web delivery, video streaming, and large files.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/","og_locale":"en_US","og_type":"article","og_title":"How to configure an Azure CDN - ciraltos","og_description":"This post covers deploying a CDN backed by Azure with a custom domain name. Azure CDN is baked by Azure Front Door Service and is suitable for general web delivery, video streaming, and large files.","og_url":"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/","og_site_name":"ciraltos","article_published_time":"2019-05-27T01:37:32+00:00","article_modified_time":"2023-03-24T04:18:17+00:00","og_image":[{"url":"https:\/\/www.ciraltos.com\/wp-content\/uploads\/2019\/05\/CDN-Overview-1-1024x517.png"}],"author":"Travis Roberts","twitter_card":"summary_large_image","twitter_creator":"@ciraltos","twitter_site":"@ciraltos","twitter_misc":{"Written by":"Travis Roberts","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/#article","isPartOf":{"@id":"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/"},"author":{"name":"Travis Roberts","@id":"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a"},"headline":"How to configure an Azure CDN","datePublished":"2019-05-27T01:37:32+00:00","dateModified":"2023-03-24T04:18:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/"},"wordCount":1756,"commentCount":0,"publisher":{"@id":"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a"},"keywords":["blob","blob storage","CDN","containter","Content Delivery Network","HTTP","https","storage","storage account","storage explorer","web","web service","web site","website"],"articleSection":["Azure"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/","url":"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/","name":"How to configure an Azure CDN - ciraltos","isPartOf":{"@id":"http:\/\/www.ciraltos.com\/staging2\/#website"},"datePublished":"2019-05-27T01:37:32+00:00","dateModified":"2023-03-24T04:18:17+00:00","description":"This post covers deploying a CDN backed by Azure with a custom domain name. Azure CDN is baked by Azure Front Door Service and is suitable for general web delivery, video streaming, and large files.","breadcrumb":{"@id":"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.ciraltos.com\/staging2\/how-to-configure-an-azure-cdn\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/www.ciraltos.com\/staging2\/"},{"@type":"ListItem","position":2,"name":"How to configure an Azure CDN"}]},{"@type":"WebSite","@id":"http:\/\/www.ciraltos.com\/staging2\/#website","url":"http:\/\/www.ciraltos.com\/staging2\/","name":"ciraltos","description":"cloud, technology and trends","publisher":{"@id":"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.ciraltos.com\/staging2\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/25391996d6cddfecd4d257162b7e373a","name":"Travis Roberts","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/image\/","url":"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2023\/03\/Logo-1.png","contentUrl":"https:\/\/www.ciraltos.com\/staging2\/wp-content\/uploads\/2023\/03\/Logo-1.png","width":5657,"height":3563,"caption":"Travis Roberts"},"logo":{"@id":"http:\/\/www.ciraltos.com\/staging2\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/www.ciraltos.com","https:\/\/twitter.com\/ciraltos"],"url":"https:\/\/www.ciraltos.com\/staging2\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/posts\/1162"}],"collection":[{"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/comments?post=1162"}],"version-history":[{"count":13,"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/posts\/1162\/revisions"}],"predecessor-version":[{"id":4026,"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/posts\/1162\/revisions\/4026"}],"wp:attachment":[{"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/media?parent=1162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/categories?post=1162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ciraltos.com\/staging2\/wp-json\/wp\/v2\/tags?post=1162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}