You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/app-service/app-service-web-tutorial-custom-domain.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -161,7 +161,7 @@ Browse to the DNS names that you configured.
161
161
If you receive an HTTP 404 (Not Found) error when you browse to the URL of your custom domain, the two most likely causes are:
162
162
163
163
- The browser client has cached the old IP address of your domain. Clear the cache and test the DNS resolution again. On a Windows machine, you can clear the cache with `ipconfig /flushdns`.
164
-
- You configured an IP-based certificate binding, and the app's IP address has changed because of it. [Remap the A record](configure-ssl-bindings.md#2-remap-records-for-ip-based-ssl) in your DNS entries to the new IP address.
164
+
- You configured an IP-based certificate binding, and the app's IP address has changed because of it. [Remap the A record](configure-ssl-bindings.md#remap-records-for-ip-based-ssl) in your DNS entries to the new IP address.
165
165
166
166
If you receive a `Page not secure` warning or error, it's because your domain doesn't have a certificate binding yet. [Add a private certificate for the domain](configure-ssl-certificate.md) and [configure the binding](configure-ssl-bindings.md).
description: Secure HTTPS access to your custom domain by creating a TLS/SSL binding with a certificate. Improve your website's security by enforcing HTTPS or TLS 1.2.
3
+
description: Help secure HTTPS access to your custom domain by creating a TLS/SSL binding with a certificate. Improve your website's security by enforcing HTTPS or TLS 1.2.
4
4
tags: buy-ssl-certificates
5
5
ms.custom: devx-track-azurepowershell
6
6
7
-
ms.topic: article
8
-
ms.date: 04/20/2023
7
+
ms.topic: how-to
8
+
ms.date: 09/16/2024
9
9
ms.reviewer: yutlin
10
10
ms.author: msangapu
11
11
author: msangapu-msft
12
12
---
13
-
# Secure a custom DNS name with a TLS/SSL binding in Azure App Service
13
+
# Provide security for a custom DNS name with a TLS/SSL binding in App Service
14
14
15
-
This article shows you how to secure the [custom domain](app-service-web-tutorial-custom-domain.md) in your [App Service app](./index.yml) or [function app](../azure-functions/index.yml) by creating a certificate binding. When you're finished, you can access your App Service app at the `https://` endpoint for your custom DNS name (for example, `https://www.contoso.com`).
15
+
This article shows you how to provide security for the [custom domain](app-service-web-tutorial-custom-domain.md) in your [App Service app](./index.yml) or [function app](../azure-functions/index.yml) by creating a certificate binding. When you're finished, you can access your App Service app at the `https://` endpoint for your custom DNS name (for example, `https://www.contoso.com`).
16
16
17
-

17
+

18
18
19
19
## Prerequisites
20
20
21
-
-[Scale up your App Service app](manage-scale-up.md) to one of the supported pricing tiers: **Basic**, **Standard**, **Premium**.
21
+
-[Scale up your App Service app](manage-scale-up.md) to one of the supported pricing tiers: Basic, Standard, Premium.
22
22
-[Map a domain name to your app](app-service-web-tutorial-custom-domain.md) or [buy and configure it in Azure](manage-custom-dns-buy-domain.md).
23
23
24
24
<aname="upload"></a>
25
25
26
-
## 1. Add the binding
26
+
## Add the binding
27
27
28
28
In the <ahref="https://portal.azure.com"target="_blank">Azure portal</a>:
29
29
30
30
1. From the left menu, select **App Services** > **\<app-name>**.
31
31
32
-
1. From the left navigation of your app, select **Custom domains**
32
+
1. From the left navigation of your app, select **Custom domains**.
33
33
34
-
1. Next to the custom domain, select **Add binding**
34
+
1. Next to the custom domain, select **Add binding**.
35
35
36
-
:::image type="content" source="media/configure-ssl-bindings/secure-domain-launch.png" alt-text="A screenshot showing how to launch the Add TLS/SSL Binding dialog.":::
36
+
:::image type="content" source="media/configure-ssl-bindings/secure-domain-launch.png" alt-text="A screenshot showing how to launch the Add TLS/SSL Binding dialog." lightbox="media/configure-ssl-bindings/secure-domain-launch.png":::
37
37
38
38
1. If your app already has a certificate for the selected custom domain, you can select it in **Certificate**. If not, you must add a certificate using one of the selections in **Source**.
39
39
40
-
-**Create App Service Managed Certificate** - Let App Service create a managed certificate for your selected domain. This option is the simplest. For more information, see [Create a free managed certificate](configure-ssl-certificate.md#create-a-free-managed-certificate).
41
-
-**Import App Service Certificate** - In **App Service Certificate**, choose an [App Service certificate](configure-ssl-app-service-certificate.md) you've purchased for your selected domain.
40
+
-**Create App Service Managed Certificate** - Let App Service create a managed certificate for your selected domain. This option is the easiest. For more information, see [Create a free managed certificate](configure-ssl-certificate.md#create-a-free-managed-certificate).
41
+
-**Import App Service Certificate** - In **App Service Certificate**, select an [App Service certificate](configure-ssl-app-service-certificate.md) you've purchased for your selected domain.
42
42
-**Upload certificate (.pfx)** - Follow the workflow at [Upload a private certificate](configure-ssl-certificate.md#upload-a-private-certificate) to upload a PFX certificate from your local machine and specify the certificate password.
43
43
-**Import from Key Vault** - Select **Select key vault certificate** and select the certificate in the dialog.
44
44
45
-
1. In **TLS/SSL type**, choose between**SNI SSL**and**IP based SSL**.
45
+
1. In **TLS/SSL type**, select either**SNI SSL**or**IP based SSL**.
46
46
47
-
-**[SNI SSL](https://en.wikipedia.org/wiki/Server_Name_Indication)**: Multiple SNI SSL bindings may be added. This option allows multiple TLS/SSL certificates to secure multiple domains on the same IP address. Most modern browsers (including Internet Explorer, Chrome, Firefox, and Opera) support SNI (for more information, see [Server Name Indication](https://wikipedia.org/wiki/Server_Name_Indication)).
48
-
-**IP based SSL**: Only one IP SSL binding may be added. This option allows only one TLS/SSL certificate to secure a dedicated public IP address. After you configure the binding, follow the steps in [2. Remap records for IPbased SSL](#2-remap-records-for-ip-based-ssl).<br/>IP SSL is supported only in **Basic** tier or higher.
47
+
-**[SNI SSL](https://en.wikipedia.org/wiki/Server_Name_Indication)**: Multiple SNI SSL bindings can be added. This option allows multiple TLS/SSL certificates to help secure multiple domains on the same IP address. Most modern browsers (including Microsoft Edge, Chrome, Firefox, and Opera) support SNI. (For more information, see [Server Name Indication](https://wikipedia.org/wiki/Server_Name_Indication).)
48
+
-**IP based SSL**: Only one IP SSL binding can be added. This option allows only one TLS/SSL certificate to help secure a dedicated public IP address. After you configure the binding, follow the steps in [Remap records for IP-based SSL](#remap-records-for-ip-based-ssl).<br/>IP-based SSL is supported only in Standard tier or higher.
49
49
50
50
1. When adding a new certificate, validate the new certificate by selecting **Validate**.
51
51
52
52
1. Select **Add**.
53
53
54
-
Once the operation is complete, the custom domain's TLS/SSL state is changed to **Secure**.
54
+
Once the operation is complete, the custom domain's TLS/SSL state is changed to **Secured**.
55
55
56
56
:::image type="content" source="media/configure-ssl-bindings/secure-domain-finished.png" alt-text="A screenshot showing the custom domain secured by a certificate binding.":::
57
57
58
58
> [!NOTE]
59
-
> A **Secure** state in the **Custom domains** means that it is secured with a certificate, but App Service doesn't check if the certificate is self-signed or expired, for example, which can also cause browsers to show an error or warning.
59
+
> A **Secured** state in **Custom domains** means that a certificate is providing security, but App Service doesn't check if the certificate is self-signed or expired, for example, which can also cause browsers to show an error or warning.
60
60
61
-
## 2. Remap records for IPbased SSL
61
+
## Remap records for IP-based SSL
62
62
63
-
This step is needed only for IPbased SSL. For an SNI SSL binding, skip to [Test HTTPS for your custom domain](#3-test-https).
63
+
This step is needed only for IP-based SSL. For an SNI SSL binding, skip to [Test HTTPS](#test-https).
64
64
65
-
There are two changes you need to make, potentially:
65
+
There are potentially two changes you need to make:
66
66
67
67
- By default, your app uses a shared public IP address. When you bind a certificate with IP SSL, App Service creates a new, dedicated IP address for your app. If you mapped an A record to your app, update your domain registry with this new, dedicated IP address.
68
68
69
69
Your app's **Custom domain** page is updated with the new, dedicated IP address. Copy this IP address, then [remap the A record](app-service-web-tutorial-custom-domain.md#create-the-dns-records) to this new IP address.
70
70
71
-
- If you have an SNI SSL binding to `<app-name>.azurewebsites.net`, [remap any CNAME mapping](app-service-web-tutorial-custom-domain.md#create-the-dns-records) to point to `sni.<app-name>.azurewebsites.net` instead (add the `sni` prefix).
71
+
- If you have an SNI SSL binding to `<app-name>.azurewebsites.net`, [remap any CNAME mapping](app-service-web-tutorial-custom-domain.md#create-the-dns-records) to point to `sni.<app-name>.azurewebsites.net` instead. (Add the `sni` prefix.)
72
72
73
-
## 3. Test HTTPS
73
+
## Test HTTPS
74
74
75
-
In various browsers, browse to `https://<your.custom.domain>` to verify that it serves up your app.
75
+
Browse to `https://<your.custom.domain>`in various browsers to verify that your app appears.
76
76
77
-
:::image type="content" source="./media/configure-ssl-bindings/app-with-custom-ssl.png" alt-text="Screenshot showing an example of browsing to your custom domain with the contoso.com URL highlighted.":::
77
+
:::image type="content" source="./media/configure-ssl-bindings/app-with-custom-ssl.png" alt-text="Screenshot showing an example of browsing to your custom domain. The contoso.com URL is highlighted.":::
78
78
79
-
Your application code can inspect the protocol via the "x-appservice-proto" header. The header has a value of `http` or `https`.
79
+
Your application code can inspect the protocol via the `x-appservice-proto` header. The header has a value of `http` or `https`.
80
80
81
81
> [!NOTE]
82
82
> If your app gives you certificate validation errors, you're probably using a self-signed certificate.
83
83
>
84
-
> If that's not the case, you may have left out intermediate certificates when you export your certificate to the PFX file.
84
+
> If that's not the case, you might have left out intermediate certificates when you exported your certificate to the PFX file.
85
85
86
86
## Frequently asked questions
87
87
@@ -94,7 +94,7 @@ Your application code can inspect the protocol via the "x-appservice-proto" head
94
94
95
95
#### How do I make sure that the app's IP address doesn't change when I make changes to the certificate binding?
96
96
97
-
Your inbound IP address can change when you delete a binding, even if that binding is IP SSL. This is especially important when you renew a certificate that's already in an IP SSL binding. To avoid a change in your app's IP address, follow these steps in order:
97
+
Your inbound IP address can change when you delete a binding, even if that binding is IP SSL. This is especially important when you renew a certificate that's already in an IP SSL binding. To avoid a change in your app's IP address, follow these steps, in order:
98
98
99
99
1. Upload the new certificate.
100
100
2. Bind the new certificate to the custom domain you want without deleting the old one. This action replaces the binding instead of removing the old one.
@@ -116,21 +116,21 @@ Your app allows [TLS](https://wikipedia.org/wiki/Transport_Layer_Security) 1.2 b
116
116
117
117
#### How do I handle TLS termination in App Service?
118
118
119
-
In App Service, [TLS termination](https://wikipedia.org/wiki/TLS_termination_proxy) happens at the network load balancers, so all HTTPS requests reach your app as unencrypted HTTP requests. If your app logic needs to check if the user requests are encrypted or not, inspect the `X-Forwarded-Proto` header.
119
+
In App Service, [TLS termination](https://wikipedia.org/wiki/TLS_termination_proxy) happens at the network load balancers, so all HTTPS requests reach your app as unencrypted HTTP requests. If your app logic needs to check if the user requests are encrypted, inspect the `X-Forwarded-Proto` header.
120
120
121
-
Languagespecific configuration guides, such as the [Linux Node.js configuration](configure-language-nodejs.md#detect-https-session) guide, shows you how to detect an HTTPS session in your application code.
121
+
Language-specific configuration guides, such as the [Linux Node.js configuration](configure-language-nodejs.md#detect-https-session) guide, show how to detect an HTTPS session in your application code.
122
122
123
123
## Automate with scripts
124
124
125
-
### Azure CLI
125
+
####Azure CLI
126
126
127
127
[Bind a custom TLS/SSL certificate to a web app](scripts/cli-configure-ssl-certificate.md)
128
128
129
-
### PowerShell
129
+
####PowerShell
130
130
131
131
[!code-powershell[main](../../powershell_scripts/app-service/configure-ssl-certificate/configure-ssl-certificate.ps1?highlight=1-3"Bind a custom TLS/SSL certificate to a web app")]
132
132
133
-
## More resources
133
+
## Related content
134
134
135
135
*[Use a TLS/SSL certificate in your code in Azure App Service](configure-ssl-certificate-in-code.md)
136
-
*[FAQ : App Service Certificates](./faq-configuration-and-management.yml)
136
+
*[Frequently asked questions about creating or deleting resources in Azure App Service](./faq-configuration-and-management.yml)
Copy file name to clipboardExpand all lines: articles/azure-maps/about-azure-maps.md
-6Lines changed: 0 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,12 +60,6 @@ Azure Maps consists of the following services that can provide geographic contex
60
60
61
61
Data is imperative for maps. Use the Data registry service to access geospatial data, used with spatial operations or image composition, previously uploaded to your [Azure Storage]. By bringing customer data closer to the Azure Maps service, you reduce latency and increase productivity. For more information, see [Data registry] in the Azure Maps REST API documentation.
62
62
63
-
> [!NOTE]
64
-
>
65
-
> **Azure Maps Data service retirement**
66
-
>
67
-
> The Azure Maps Data service (both [v1] and [v2]) is now deprecated and will be retired on 9/16/24. To avoid service disruptions, all calls to the Data service will need to be updated to use the Azure Maps [Data registry] service by 9/16/24. For more information, see [How to create data registry].
68
-
69
63
### Geolocation service
70
64
71
65
Use the Geolocation service to retrieve the two-letter country/region code for an IP address. This service can help you enhance user experience by providing customized application content based on geographic location.
Copy file name to clipboardExpand all lines: articles/azure-maps/azure-maps-qps-rate-limits.md
-3Lines changed: 0 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,6 @@ The following list shows the QPS usage limits for each Azure Maps service by Pri
27
27
| Creator - Alias | 10 | Not Available | Not Available |
28
28
| Creator - Conversion, Dataset, Feature State, Features, Map Configuration, Style, Routeset, TilesetDetails, Wayfinding | 50 | Not Available | Not Available |
29
29
| Data registry service | 50 | 50 | Not Available |
30
-
| Data service (Deprecated<sup>1</sup>) | 50 | 50 | Not Available |
31
30
| Geolocation service | 50 | 50 | 50 |
32
31
| Render service - Road tiles | 500 | 500 | 50 |
33
32
| Render service - Satellite tiles | 250 | 250 | Not Available |
@@ -44,8 +43,6 @@ The following list shows the QPS usage limits for each Azure Maps service by Pri
44
43
| Traffic service | 50 | 50 | 50 |
45
44
| Weather service | 50 | 50 | 50 |
46
45
47
-
<sup>1</sup> The Azure Maps Data service (both [v1] and [v2]) is now deprecated and will be retired on 9/16/24. To avoid service disruptions, all calls to the Data service will need to be updated to use the Azure Maps [Data Registry] service by 9/16/24. For more information, see [How to create data registry].
48
-
49
46
When QPS limits are reached, an HTTP 429 error is returned. If you're using the Gen 2 or Gen 1 S1 pricing tiers, you can create an Azure Maps *Technical* Support Request in the [Azure portal] to increase a specific QPS limit if needed. QPS limits for the Gen 1 S0 pricing tier can't be increased.
Copy file name to clipboardExpand all lines: articles/azure-maps/rest-api-azure-maps.md
-2Lines changed: 0 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,6 @@ The most recent stable release of the Azure Maps services.
22
22
23
23
| API | API version | Description |
24
24
|-----|-------------|-------------|
25
-
|[Data]| 2.0 | The Azure Maps Data v2 service is deprecated and will be retired on 9/16/24. To avoid service disruptions, all calls to the Data service need to be updated to use the Azure Maps [Data registry] service by 9/16/24. For more information, see [How to create data registry]. |
26
25
|[Data Registry]| 2023-06-01 | Programmatically store and update geospatial data to use in spatial operations. |
27
26
|[Geolocation]| 1.0 | Convert IP addresses to country/region ISO codes. |
28
27
|[Render]| 2024-04-01 | Get road, satellite/aerial, weather, traffic map tiles, and static map images. |
@@ -47,7 +46,6 @@ There are previous stable releases of an Azure Maps services that are still in u
47
46
48
47
| API | API version | Description |
49
48
|-----|-------------|-------------|
50
-
|[Data][Data-v1]| 1.0 | The Azure Maps Data v1 service is deprecated and will be retired on 9/16/24. To avoid service disruptions, all calls to the Data service need to be updated to use the Azure Maps [Data registry] service by 9/16/24. For more information, see [How to create data registry]. |
51
49
|[Render][Render v1]| 1.0 | Get road, satellite/aerial, weather, traffic map tiles and static map images.<BR>The Azure Maps [Render v1] service is now deprecated and will be retired on 9/17/26. To avoid service disruptions, all calls to Render v1 API needs to be updated to use the latest version of the [Render] API by 9/17/26. |
52
50
|[Search][Search-v1]| 1.0 | Geocode addresses and coordinates, search for business listings and places by name or category and get administrative boundary polygons. This is version 1.0 of the Search service. For the latest version, see [Search]. |
0 commit comments