Skip to content

Commit 8b33d9b

Browse files
authored
Merge pull request #300995 from MicrosoftDocs/main
6/6/2025 PM Publish
2 parents cd658f5 + ba56fc8 commit 8b33d9b

23 files changed

+592
-535
lines changed

articles/app-service/configure-custom-container.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -581,4 +581,4 @@ The following lists show supported and unsupported Docker Compose configuration
581581
Or, see more resources:
582582

583583
- [Environment variables and app settings reference](reference-app-settings.md)
584-
- [Load certificate in Windows/Linux containers](configure-ssl-certificate-in-code.md#load-certificate-in-linuxwindows-containers)
584+
- [Load certificates in Windows/Linux containers](configure-ssl-certificate-in-code.md#load-certificates-in-linuxwindows-containers)

articles/app-service/configure-ssl-app-service-certificate.md

Lines changed: 76 additions & 83 deletions
Large diffs are not rendered by default.

articles/app-service/configure-ssl-bindings.md

Lines changed: 30 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Secure your domain with TLS/SSL
2+
title: Secure Your Domain with TLS/SSL
33
description: Secure your custom domain in Azure App Service by enabling HTTPS with a TLS/SSL certificate for improved security and trust.
44
keywords: TLS/SSL certificate, secure domain, HTTPS, Azure App Service, domain security
55
tags: buy-ssl-certificates
@@ -13,13 +13,13 @@ author: msangapu-msft
1313
---
1414
# Enable HTTPS for a custom domain in Azure App Service
1515

16-
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+
This article shows you how to provide security for the [custom domain](app-service-web-tutorial-custom-domain.md) in your [Azure 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 Domain Name System (DNS) name. An example is `https://www.contoso.com`.
1717

18-
![Web app with custom TLS/SSL certificate.](./media/configure-ssl-bindings/app-with-custom-ssl.png)
18+
![Screenshot that shows a web app with a custom TLS/SSL certificate.](./media/configure-ssl-bindings/app-with-custom-ssl.png)
1919

2020
## Prerequisites
2121

22-
- [Scale up your App Service app](manage-scale-up.md) to one of the supported pricing tiers: Basic, Standard, Premium.
22+
- [Scale up your App Service app](manage-scale-up.md) to one of the supported pricing tiers: Basic, Standard, or Premium.
2323
- [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).
2424

2525
<a name="upload"></a>
@@ -28,78 +28,69 @@ This article shows you how to provide security for the [custom domain](app-servi
2828

2929
In the <a href="https://portal.azure.com" target="_blank">Azure portal</a>:
3030

31-
1. From the left menu, select **App Services** > **\<app-name>**.
31+
1. On the left pane, select **App Services** > *\<app-name>*.
3232

33-
1. From the left navigation of your app, select **Custom domains**.
33+
1. On the left pane of your app, select **Custom domains**.
3434

3535
1. Next to the custom domain, select **Add binding**.
3636

37-
:::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+
:::image type="content" source="media/configure-ssl-bindings/secure-domain-launch.png" alt-text="Screenshot that shows how to open the Add TLS/SSL Binding dialog." lightbox="media/configure-ssl-bindings/secure-domain-launch.png":::
3838

39-
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+
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 by using one of the selections in **Source**:
4040

41-
- **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).
42-
- **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.
43-
- **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.
44-
- **Import from Key Vault** - Select **Select key vault certificate** and select the certificate in the dialog.
41+
- **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).
42+
- **Import App Service Certificate**: In **App Service Certificate**, select the [App Service certificate](configure-ssl-app-service-certificate.md) that you purchased for your selected domain.
43+
- **Upload certificate (.pfx)**: Follow the workflow at [Upload a private certificate](configure-ssl-certificate.md#upload-a-private-certificate) to upload a Personal Information Exchange file (PFX) certificate from your local machine and specify the certificate password.
44+
- **Import from Key Vault**: Choose **Select key vault certificate** and select the certificate in the dialog.
4545

46-
1. In **TLS/SSL type**, select either **SNI SSL** or **IP based SSL**.
46+
1. In **TLS/SSL type**, select either **SNI SSL** or **IP based SSL**:
4747

48-
- **[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).)
49-
- **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.
48+
- [SNI SSL](https://en.wikipedia.org/wiki/Server_Name_Indication): You can add multiple Server Name Indication (SNI) Secure Sockets Layer (SSL) bindings. This option allows multiple Transport Layer Security (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).)
49+
- **IP based SSL**: You can add only one IP SSL binding. 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). IP-based SSL is supported only in the Standard tier or higher.
5050

51-
1. When adding a new certificate, validate the new certificate by selecting **Validate**.
51+
1. When you add a new certificate, select **Validate** to validate the new certificate.
5252

5353
1. Select **Add**.
5454

55-
Once the operation is complete, the custom domain's TLS/SSL state is changed to **Secured**.
56-
57-
:::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.":::
58-
59-
> [!NOTE]
60-
> 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.
55+
After the operation is complete, the custom domain's TLS/SSL state is changed to **Secured**.
56+
57+
:::image type="content" source="media/configure-ssl-bindings/secure-domain-finished.png" alt-text="Screenshot that shows the custom domain secured by a certificate binding.":::
58+
59+
A **Secured** state in **Custom domains** means that a certificate provides security. App Service doesn't check if the certificate is self-signed or expired, which can also cause browsers to show an error or warning.
6160

6261
## Remap records for IP-based SSL
6362

6463
This step is needed only for IP-based SSL. For an SNI SSL binding, skip to [Test HTTPS](#test-https).
6564

66-
There are potentially two changes you need to make:
65+
There are potentially two changes that you need to make:
6766

6867
- 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.
6968

70-
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.
69+
Your app's **Custom domain** page is updated with the new, dedicated IP address. Copy this IP address, and then [remap the A record](app-service-web-tutorial-custom-domain.md#create-the-dns-records) to this new IP address.
7170

7271
- 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.)
7372

7473
## Test HTTPS
7574

7675
Browse to `https://<your.custom.domain>` in various browsers to verify that your app appears.
7776

78-
:::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.":::
77+
:::image type="content" source="./media/configure-ssl-bindings/app-with-custom-ssl.png" alt-text="Screenshot that shows an example of browsing to your custom domain. The contoso.com URL is highlighted.":::
7978

80-
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`.
8180

82-
> [!NOTE]
83-
> If your app gives you certificate validation errors, you're probably using a self-signed certificate.
84-
>
85-
> If that's not the case, you might have left out intermediate certificates when you exported your certificate to the PFX file.
81+
If your app gives you certificate validation errors, you're probably using a self-signed certificate. If that's not the case, you probably left out intermediate certificates when you exported your certificate to the .pfx file.
8682

8783
## Frequently asked questions
8884

89-
- [How do I make sure that the app's IP address doesn't change when I make changes to the certificate binding?](#how-do-i-make-sure-that-the-apps-ip-address-doesnt-change-when-i-make-changes-to-the-certificate-binding)
90-
- [Can I disable the forced redirect from HTTP to HTTPS?](#can-i-disable-the-forced-redirect-from-http-to-https)
91-
- [How can I change the minimum TLS versions for the app?](#how-can-i-change-the-minimum-tls-versions-for-the-app)
92-
- [How do I handle TLS termination in App Service?](#how-do-i-handle-tls-termination-in-app-service)
93-
9485
<a name="prevent-ip-changes"></a>
9586

9687
#### How do I make sure that the app's IP address doesn't change when I make changes to the certificate binding?
9788

98-
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:
89+
Your inbound IP address can change when you delete a binding, even if that binding is IP SSL. This behavior 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:
9990

10091
1. Upload the new certificate.
101-
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.
102-
3. Delete the old certificate.
92+
1. Bind the new certificate to the custom domain that you want without deleting the old one. This action replaces the binding instead of removing the old one.
93+
1. Delete the old certificate.
10394

10495
<a name="enforce-https"></a>
10596

@@ -111,7 +102,7 @@ By default, App Service forces a redirect from HTTP requests to HTTPS. To disabl
111102

112103
#### How can I change the minimum TLS versions for the app?
113104

114-
Your app allows [TLS](https://wikipedia.org/wiki/Transport_Layer_Security) 1.2 by default, which is the recommended TLS level by industry standards, such as [PCI DSS](https://wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard). To enforce different TLS versions, see [Configure general settings](configure-common.md#configure-general-settings).
105+
Your app allows [TLS](https://wikipedia.org/wiki/Transport_Layer_Security) 1.2 by default. Industry standards such as [PCI DSS](https://wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard) recommend this TLS level. To enforce different TLS versions, see [Configure general settings](configure-common.md#configure-general-settings).
115106

116107
<a name="handle-tls-termination"></a>
117108

0 commit comments

Comments
 (0)