Skip to content

Commit f2ee3b7

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into quality-and-diagnostics
2 parents e2038e0 + 7d83169 commit f2ee3b7

File tree

178 files changed

+9027
-1683
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

178 files changed

+9027
-1683
lines changed

CODEOWNERS

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,3 @@
2929
/articles/advisor @jasonwhowell @thomps23
3030
/articles/chaos-studio @jasonwhowell @thomps23
3131
/articles/service-health @jasonwhowell @thomps23
32-
/articles/azure-arc @jasonwhowell @thomps23
33-
/articles/azure-linux @jasonwhowell @thomps23
34-
/articles/azure-portal @jasonwhowell @thomps23
35-
/articles/copilot @jasonwhowell @thomps23
36-
/articles/lighthouse @jasonwhowell @thomps23
37-
/articles/quotas @jasonwhowell @thomps23
38-
/articles/kubernetes-fleet @jasonwhowell @thomps23
39-

articles/api-management/authentication-basic-policy.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ ms.author: danlep
1616

1717
Use the `authentication-basic` policy to authenticate with a backend service using Basic authentication. This policy effectively sets the HTTP Authorization header to the value corresponding to the credentials provided in the policy.
1818

19+
[!INCLUDE [api-management-credentials-caution](../../includes/api-management-credentials-caution.md)]
20+
1921
[!INCLUDE [api-management-policy-generic-alert](../../includes/api-management-policy-generic-alert.md)]
2022

2123

articles/api-management/authentication-certificate-policy.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ ms.author: danlep
1414

1515
[!INCLUDE [api-management-availability-all-tiers](../../includes/api-management-availability-all-tiers.md)]
1616

17-
Use the `authentication-certificate` policy to authenticate with a backend service using a client certificate. When the certificate is [installed into API Management](./api-management-howto-mutual-certificates.md) first, identify it first by its thumbprint or certificate ID (resource name).
17+
Use the `authentication-certificate` policy to authenticate with a backend service using a client certificate. When the certificate is [installed into API Management](./api-management-howto-mutual-certificates.md) first, identify it first by its thumbprint or certificate ID (resourcename).
18+
19+
[!INCLUDE [api-management-credentials-caution](../../includes/api-management-credentials-caution.md)]
1820

1921
> [!CAUTION]
2022
> If the certificate references a certificate stored in Azure Key Vault, identify it using the certificate ID. When a key vault certificate is rotated, its thumbprint in API Management will change, and the policy will not resolve the new certificate if it is identified by thumbprint.
@@ -43,6 +45,12 @@ ms.author: danlep
4345
- [**Policy scopes:**](./api-management-howto-policies.md#scopes) global, workspace, product, API, operation
4446
- [**Gateways:**](api-management-gateways-overview.md) classic, v2, consumption, self-hosted, workspace
4547

48+
### Usage notes
49+
50+
- We recommend configuring [key vault certificates](api-management-howto-mutual-certificates.md) to manage certificates used to secure access to backend services.
51+
- If you configure a certificate password in this policy, we recommend using a [named value](api-management-howto-properties.md).
52+
53+
4654
## Examples
4755

4856
### Client certificate identified by the certificate ID

articles/api-management/proxy-policy.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ ms.author: danlep
1616

1717
The `proxy` policy allows you to route requests forwarded to backends via an HTTP proxy. Only HTTP (not HTTPS) is supported between the gateway and the proxy. Basic and NTLM authentication only.
1818

19+
[!INCLUDE [api-management-credentials-caution](../../includes/api-management-credentials-caution.md)]
20+
1921
[!INCLUDE [api-management-policy-generic-alert](../../includes/api-management-policy-generic-alert.md)]
2022

2123

@@ -39,6 +41,11 @@ The `proxy` policy allows you to route requests forwarded to backends via an HTT
3941
- [**Policy scopes:**](./api-management-howto-policies.md#scopes) global, workspace, product, API, operation
4042
- [**Gateways:**](api-management-gateways-overview.md) classic, v2, consumption, self-hosted, workspace
4143

44+
### Usage notes
45+
46+
- We recommend using [named values](api-management-howto-properties.md) to provide credentials, with secrets protected in a key vault.
47+
48+
4249
## Example
4350

4451
In this example, [named values](api-management-howto-properties.md) are used for the username and password to avoid storing sensitive information in the policy document.

articles/api-management/virtual-network-workspaces-resources.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ For information about networking options in API Management, see [Use a virtual n
3131

3232
* The subnet can't be shared with another Azure resource, including another workspace gateway.
3333

34+
## Subnet size
35+
36+
* Minimum: /27 (32 addresses)
37+
* Maximum: /24 (256 addresses) - recommended
38+
3439
## Subnet delegation
3540

3641
The subnet must be delegated as follows to enable the desired inbound and outbound access.

articles/app-service/app-service-web-tutorial-custom-domain.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ Browse to the DNS names that you configured.
161161
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:
162162

163163
- 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.
165165

166166
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).
167167

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,87 @@
11
---
22
title: Secure a custom DNS with a TLS/SSL binding
3-
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.
44
tags: buy-ssl-certificates
55
ms.custom: devx-track-azurepowershell
66

7-
ms.topic: article
8-
ms.date: 04/20/2023
7+
ms.topic: how-to
8+
ms.date: 09/16/2024
99
ms.reviewer: yutlin
1010
ms.author: msangapu
1111
author: msangapu-msft
1212
---
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
1414

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`).
1616

17-
![Web app with custom TLS/SSL certificate](./media/configure-ssl-bindings/app-with-custom-ssl.png)
17+
![Web app with custom TLS/SSL certificate.](./media/configure-ssl-bindings/app-with-custom-ssl.png)
1818

1919
## Prerequisites
2020

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.
2222
- [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).
2323

2424
<a name="upload"></a>
2525

26-
## 1. Add the binding
26+
## Add the binding
2727

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

3030
1. From the left menu, select **App Services** > **\<app-name>**.
3131

32-
1. From the left navigation of your app, select **Custom domains**
32+
1. From the left navigation of your app, select **Custom domains**.
3333

34-
1. Next to the custom domain, select **Add binding**
34+
1. Next to the custom domain, select **Add binding**.
3535

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":::
3737

3838
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**.
3939

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.
4242
- **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.
4343
- **Import from Key Vault** - Select **Select key vault certificate** and select the certificate in the dialog.
4444

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**.
4646

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 IP based 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.
4949

5050
1. When adding a new certificate, validate the new certificate by selecting **Validate**.
5151

5252
1. Select **Add**.
5353

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**.
5555

5656
:::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.":::
5757

5858
> [!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.
6060
61-
## 2. Remap records for IP based SSL
61+
## Remap records for IP-based SSL
6262

63-
This step is needed only for IP based 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).
6464

65-
There are two changes you need to make, potentially:
65+
There are potentially two changes you need to make:
6666

6767
- 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.
6868

6969
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.
7070

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.)
7272

73-
## 3. Test HTTPS
73+
## Test HTTPS
7474

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.
7676

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.":::
7878

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`.
8080

8181
> [!NOTE]
8282
> If your app gives you certificate validation errors, you're probably using a self-signed certificate.
8383
>
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.
8585
8686
## Frequently asked questions
8787

@@ -94,7 +94,7 @@ Your application code can inspect the protocol via the "x-appservice-proto" head
9494

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

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:
9898

9999
1. Upload the new certificate.
100100
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
116116

117117
#### How do I handle TLS termination in App Service?
118118

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.
120120

121-
Language specific 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.
122122

123123
## Automate with scripts
124124

125-
### Azure CLI
125+
#### Azure CLI
126126

127127
[Bind a custom TLS/SSL certificate to a web app](scripts/cli-configure-ssl-certificate.md)
128128

129-
### PowerShell
129+
#### PowerShell
130130

131131
[!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")]
132132

133-
## More resources
133+
## Related content
134134

135135
* [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)

articles/azure-arc/kubernetes/azure-rbac.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,10 @@ For a conceptual overview of this feature, see [Azure RBAC on Azure Arc-enabled
8686
1. Add the following specification under `volumes`:
8787

8888
```yml
89-
- name: azure-rbac
90-
hostPath:
89+
- hostPath
9190
path: /etc/guard
9291
type: Directory
92+
name: azure-rbac
9393
```
9494

9595
1. Add the following specification under `volumeMounts`:

articles/azure-arc/kubernetes/extensions-release.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,10 +215,9 @@ For more information, see [What is Edge Storage Accelerator?](../edge-storage-ac
215215

216216
## Connected registry on Arc-enabled Kubernetes
217217

218-
- **Supported distributions**: Connected registry for Arc-enabled Kubernetes clusters.
219-
- **Supported Azure regions**: All regions where Azure Arc-enabled Kubernetes is available.
218+
- **Supported distributions**: AKS enabled by Azure Arc, Kubernetes using kind.
220219

221-
The connected registry extension for Azure Arc enables you to sync container images between your Azure Container Registry (ACR) and your local on-prem Azure Arc-enabled Kubernetes cluster. The extension is deployed to the local or remote cluster and uses a synchronization schedule and window to sync images between the on-prem connected registry and the cloud ACR registry.
220+
The connected registry extension for Azure Arc allows you to synchronize container images between your Azure Container Registry (ACR) and your on-premises Azure Arc-enabled Kubernetes cluster. This extension can be deployed to either a local or remote cluster and utilizes a synchronization schedule and window to ensure seamless syncing of images between the on-premises connected registry and the cloud-based ACR.
222221

223222
For more information, see [Connected Registry for Arc-enabled Kubernetes clusters](../../container-registry/quickstart-connected-registry-arc-cli.md).
224223

0 commit comments

Comments
 (0)