Skip to content

Commit 0d9e7e3

Browse files
authored
Merge pull request #311086 from v-albemi/custom-domains-certificates
Freshness Edit: Azure Container Apps
2 parents 39c945d + 66dd1e3 commit 0d9e7e3

1 file changed

Lines changed: 60 additions & 61 deletions

File tree

Lines changed: 60 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
---
2-
title: Custom domain names and certificates in Azure Container Apps
3-
description: Learn to manage custom domain names and certificates in Azure Container Apps
2+
title: Custom Domain Names and Certificates in Azure Container Apps
3+
description: Learn how to manage custom domain names and certificates in Azure Container Apps.
44
services: container-apps
55
author: craigshoemaker
66
ms.service: azure-container-apps
77
ms.custom: build-2023, ignite-2024
88
ms.topic: how-to
9-
ms.date: 1/14/2025
9+
ms.date: 01/29/2026
1010
ms.author: cshoe
1111
zone_pivot_groups: azure-cli-or-portal
1212
---
1313

14-
# Custom domain names and bring your own certificates in Azure Container Apps
14+
# Custom domain names and bring-your-own certificates in Azure Container Apps
1515

1616
Azure Container Apps allows you to bind one or more custom domains to a container app.
1717

@@ -21,7 +21,7 @@ Azure Container Apps allows you to bind one or more custom domains to a containe
2121
- Ingress must be enabled for the container app.
2222

2323
> [!NOTE]
24-
> If you configure a [custom environment DNS (Domain Name System) suffix](environment-custom-dns-suffix.md), you can't add a custom domain that contains this suffix to your Container App.
24+
> If you configure a [custom environment DNS (Domain Name System) suffix](environment-custom-dns-suffix.md), you can't add a custom domain that contains this suffix to your container app.
2525
2626
## Add a custom domain and certificate
2727

@@ -30,54 +30,53 @@ Azure Container Apps allows you to bind one or more custom domains to a containe
3030
> [!IMPORTANT]
3131
> If you're using a new certificate, you must have an existing [SNI domain certificate](https://wikipedia.org/wiki/Server_Name_Indication) file available to upload to Azure.
3232
33-
1. Navigate to your container app in the [Azure portal](https://portal.azure.com)
33+
1. Go to your container app in the [Azure portal](https://portal.azure.com).
3434

35-
1. Verify that your app has ingress enabled by selecting **Ingress** in the *Settings* section. If ingress isn't enabled, enable it with these steps:
35+
1. Verify that your app has ingress enabled by selecting **Ingress** in the **Networking** section in the left pane. If ingress isn't enabled, enable it by completing these steps:
3636

37-
1. Set *HTTP Ingress* to **Enabled**.
38-
1. Select the desired *Ingress traffic* setting.
39-
1. Enter the *Target port*.
37+
1. Set **HTTP Ingress** to **Enabled**.
38+
1. Select the **Ingress traffic** setting that you want.
39+
1. Set the **Ingress type** to **HTTP**.
40+
1. Enter the **Target port**.
4041
1. Select **Save**.
4142

42-
1. Under the *Settings* section, select **Custom domains**.
43+
1. In the **Networking** section, select **Custom domains**.
4344

44-
1. Select the **Add custom domain** button.
45+
1. Select **Add custom domain**.
4546

46-
1. In the *Add custom domain and certificate* window, in *TLS/SSL certificate*, select **Bring your own certificate**.
47+
1. In the **Add custom domain and certificate** pane, under **TLS/SSL certificate**, select **Bring your own certificate**.
4748

48-
1. In *domain*, enter the domain you want to add.
49+
1. In **Domain** box, enter the domain that you want to add.
4950

5051
1. Select **Add a certificate**.
5152

52-
1. In the *Add certificate* window, in *Certificate name*, enter a name for this certificate.
53-
54-
1. In *Certificate file* section, browse for the certificate file you want to upload.
53+
1. In the **Add certificate** pane, in the **Source** box, select **Upload certificate (.pfx)** and browse for the certificate file that you want to upload.
5554

5655
1. Select **Validate**.
5756

58-
1. Once validation succeeds, select **Add**.
57+
1. After validation succeeds, select **Add**.
5958

60-
1. In the *Add custom domain and certificate* window, in *Certificate*, select the certificate you just added.
59+
1. In the **Add custom domain and certificate** pane, in **Certificate**, select the certificate that you just added.
6160

62-
1. Select the *Hostname record type* based on the type of your domain.
61+
1. Select the **Hostname record type**, based on the type of your domain:
6362

6463
| Domain type | Record type | Notes |
6564
|--|--|--|
66-
| Apex domain | A record | An apex domain is a domain at the root level of your domain. For example, if your DNS (Domain Name System) zone is `contoso.com`, then `contoso.com` is the apex domain. |
67-
| Subdomain | CNAME | A subdomain is a domain that is part of another domain. For example, if your DNS zone is `contoso.com`, then `www.contoso.com` is an example of a subdomain that can be configured in the zone. |
65+
| Apex domain | A record | An apex domain is a domain at the root level of your domain. For example, if your DNS zone is `contoso.com`, then `contoso.com` is the apex domain. |
66+
| Subdomain | CNAME | A subdomain is a domain that's part of another domain. For example, if your DNS zone is `contoso.com`, then `www.contoso.com` is an example of a subdomain that can be configured in the zone. |
6867

69-
1. Using the DNS provider that is hosting your domain, create DNS records based on the *Hostname record type* you selected using the values shown in the *Domain validation* section. The records point the domain to your container app and verify that you own it. The setup depends on whether you're using custom domains with the private endpoint feature:
68+
1. Using the DNS provider that hosts your domain, create DNS records based on the **Hostname record type** you selected by using the values shown in the **Domain validation** section. The records point the domain to your container app and verify that you own it. The setup depends on whether you're using custom domains with the private endpoint feature:
7069

7170
# [General](#tab/general)
7271

73-
- If you selected *A record*, create the following DNS records:
72+
- If you selected **A record**, create the following DNS records:
7473

7574
| Record type | Host | Value |
7675
|--|--|--|
7776
| A | `@` | The IP address of your Container Apps environment. |
7877
| TXT | `asuid` | The domain verification code. |
7978

80-
- If you selected *CNAME*, create the following DNS records:
79+
- If you selected **CNAME**, create the following DNS records:
8180

8281
| Record type | Host | Value |
8382
|--|--|--|
@@ -86,19 +85,19 @@ Azure Container Apps allows you to bind one or more custom domains to a containe
8685

8786
# [Private endpoint](#tab/private-endpoint)
8887

89-
- If you selected *A record*, you need to have a private DNS zone which has the same DNS zone name as your public DNS. Create the following DNS record on your private DNS zone:
88+
- If you selected **A record**, you need to have a private DNS zone that has the same DNS zone name as your public DNS. Create the following DNS record on your private DNS zone:
9089

9190
| Record type | Host | Value |
9291
|--|--|--|
93-
| A | `@` | The Private IP of your private endpoint on your container apps environment. |
92+
| A | `@` | The private IP address of your private endpoint in your Container Apps environment. |
9493

95-
In addition, you'll need to add the following record to your public DNS zone.
94+
In addition, you need to add the following record to your public DNS zone:
9695

9796
| Record type | Host | Value |
9897
|--|--|--|
9998
| TXT | `asuid` | The domain verification code. |
10099

101-
- If you selected *CNAME*, create the following DNS records on your public DNS zone:
100+
- If you selected **CNAME**, create the following DNS records on your public DNS zone:
102101

103102
| Record type | Host | Value |
104103
|--|--|--|
@@ -107,33 +106,33 @@ Azure Container Apps allows you to bind one or more custom domains to a containe
107106

108107
---
109108

110-
1. Select the **Validate** button.
109+
1. Select **Validate**.
111110

112-
1. Once validation succeeds, select the **Add** button.
111+
1. After validation succeeds, select **Add**.
113112

114-
1. Once the operation is complete, you see your domain name in the list of custom domains with a status of *Secured*. Navigate to your domain to verify that it's accessible.
113+
1. After the operation is complete, you see your domain name in the list of custom domains with a status of **Secured**. Go to your domain to verify that it's accessible.
115114

116115
> [!NOTE]
117-
> For container apps in internal Container Apps environments, [extra configuration](./private-endpoints-with-dns.md) is required to use custom domains with VNET-scope ingress.
116+
> For container apps in internal Container Apps environments, [extra configuration](./private-endpoints-with-dns.md) is required for using custom domains with VNET-scope ingress.
118117
119118
::: zone-end
120119

121120
::: zone pivot="azure-cli"
122121

123-
Container Apps supports apex domains and subdomains. Each domain type requires a different DNS record type and validation method.
122+
Container Apps supports apex domains and subdomains. Each domain type requires a different DNS record type and validation method:
124123

125124
| Domain type | Record type | Validation method | Notes |
126125
|--|--|--|--|
127126
| Apex domain | A record | HTTP | An apex domain is a domain at the root level of your domain. For example, if your DNS zone is `contoso.com`, then `contoso.com` is the apex domain. |
128-
| Subdomain | CNAME | CNAME | A subdomain is a domain that is part of another domain. For example, if your DNS zone is `contoso.com`, then `www.contoso.com` is an example of a subdomain that can be configured in the zone. |
127+
| Subdomain | CNAME | CNAME | A subdomain is a domain that's part of another domain. For example, if your DNS zone is `contoso.com`, then `www.contoso.com` is an example of a subdomain that can be configured in the zone. |
129128

130-
1. Log in to Azure with the Azure CLI.
129+
1. Sign in to Azure by using the Azure CLI:
131130

132131
```azurecli
133132
az login
134133
```
135134
136-
1. Next, install the Azure Container Apps extension for the CLI.
135+
1. Install the Azure Container Apps extension for the CLI:
137136
138137
```azurecli
139138
az extension add --name containerapp --upgrade
@@ -153,18 +152,18 @@ Container Apps supports apex domains and subdomains. Each domain type requires a
153152
```
154153
155154
- Replace `<CERTIFICATE_LOCAL_PATH>` with the local path of your certificate file.
156-
- Replace `<CERTIFICATE_LOWERCASE_NAME>` with a lowercase certificate name that is unique within the environment.
155+
- Replace `<CERTIFICATE_LOWERCASE_NAME>` with a lowercase certificate name that's unique within the environment.
157156
- Replace `<TARGET_PORT>` with the port that your container app is listening on.
158157
159-
1. Verify that your container app has HTTP ingress enabled.
158+
1. Verify that your container app has HTTP ingress enabled:
160159
161160
```azurecli
162161
az containerapp ingress show \
163162
-n $CONTAINER_APP \
164163
-g $RESOURCE_GROUP
165164
```
166165
167-
If ingress isn't enabled, enable it with these steps:
166+
If ingress isn't enabled, enable it:
168167
169168
```azurecli
170169
az containerapp ingress enable \
@@ -175,7 +174,7 @@ Container Apps supports apex domains and subdomains. Each domain type requires a
175174
--transport auto
176175
```
177176
178-
1. If you're configuring an apex domain, get the IP address of your Container Apps environment.
177+
1. If you're configuring an apex domain, get the IP address of your Container Apps environment:
179178
180179
```azurecli
181180
az containerapp env show \
@@ -185,7 +184,7 @@ Container Apps supports apex domains and subdomains. Each domain type requires a
185184
--query "properties.staticIp"
186185
```
187186
188-
1. If you're configuring a subdomain, get the automatically generated domain of your container app.
187+
1. If you're configuring a subdomain, get the automatically generated domain of your container app:
189188
190189
```azurecli
191190
az containerapp show \
@@ -195,7 +194,7 @@ Container Apps supports apex domains and subdomains. Each domain type requires a
195194
--query "properties.configuration.ingress.fqdn"
196195
```
197196
198-
1. Get the domain verification code.
197+
1. Get the domain verification code:
199198
200199
```azurecli
201200
az containerapp show \
@@ -205,18 +204,18 @@ Container Apps supports apex domains and subdomains. Each domain type requires a
205204
--query "properties.customDomainVerificationId"
206205
```
207206
208-
1. Using the DNS provider that is hosting your domain, create DNS records based on the record type you selected using the values shown in the *Domain validation* section. The records point the domain to your container app and verify that you own it. The setup depends on whether you're using custom domains with the private endpoint feature:
207+
1. Using the DNS provider that hosts your domain, create DNS records based on the record type you selected by using the values shown in the **Domain validation** section. The records point the domain to your container app and verify that you own it. The setup depends on whether you're using custom domains with the private endpoint feature:
209208
210209
# [General](#tab/general)
211210
212-
- If you selected *A record*, create the following DNS records:
211+
- If you selected **A record**, create the following DNS records:
213212
214213
| Record type | Host | Value |
215214
|--|--|--|
216215
| A | `@` | The IP address of your Container Apps environment. |
217216
| TXT | `asuid` | The domain verification code. |
218217
219-
- If you selected *CNAME*, create the following DNS records:
218+
- If you selected **CNAME**, create the following DNS records:
220219
221220
| Record type | Host | Value |
222221
|--|--|--|
@@ -227,14 +226,14 @@ Container Apps supports apex domains and subdomains. Each domain type requires a
227226
228227
When using a private endpoint for your incoming traffic, you need to [create a private DNS zone](how-to-use-private-endpoint.md#configure-the-private-dns-zone).
229228
230-
- If you selected *A record*, create the following DNS records:
229+
- If you selected **A record**, create the following DNS records:
231230
232231
| Record type | Host | Value |
233232
|--|--|--|
234-
| A | `@` | The Private IP of your private endpoint on your container apps environment. |
233+
| A | `@` | The private IP of your private endpoint in your container apps environment. |
235234
| TXT | `asuid` | The domain verification code. |
236235
237-
- If you selected *CNAME*, create the following DNS records:
236+
- If you selected **CNAME**, create the following DNS records:
238237
239238
| Record type | Host | Value |
240239
|--|--|--|
@@ -243,7 +242,7 @@ Container Apps supports apex domains and subdomains. Each domain type requires a
243242
244243
---
245244
246-
1. Upload the certificate to your environment.
245+
1. Upload the certificate to your environment:
247246
248247
```azurecli
249248
az containerapp env certificate upload \
@@ -254,7 +253,7 @@ Container Apps supports apex domains and subdomains. Each domain type requires a
254253
--certificate-name $CERTIFICATE_LOWERCASE_NAME
255254
```
256255
257-
1. Bind the certificate and domain to your container app.
256+
1. Bind the certificate and domain to your container app:
258257
259258
```azurecli
260259
az containerapp hostname bind \
@@ -266,39 +265,39 @@ Container Apps supports apex domains and subdomains. Each domain type requires a
266265
--validation-method <VALIDATION_METHOD>
267266
```
268267
269-
- If you're configuring an *A record*, replace `<VALIDATION_METHOD>` with `HTTP`.
268+
- If you're configuring an **A record**, replace `<VALIDATION_METHOD>` with `HTTP`.
270269
271-
- If you're configuring a *CNAME*, replace `<VALIDATION_METHOD>` with `CNAME`.
270+
- If you're configuring a **CNAME**, replace `<VALIDATION_METHOD>` with `CNAME`.
272271
273272
It might take several minutes to issue the certificate and add the domain to your container app.
274273
275-
1. Once the operation is complete, navigate to your domain to verify that it's accessible.
274+
1. After the operation is complete, go to your domain to verify that it's accessible.
276275
277276
::: zone-end
278277
279278
## Managing certificates
280279
281-
You can manage certificates via the Container Apps environment or through an individual container app.
280+
You can manage certificates via the Container Apps environment or via an individual container app.
282281
283282
### Environment
284283
285-
The *Certificates* window of the Container Apps environment presents a table of all the certificates associated with the environment.
284+
The **Certificates** pane of the Container Apps environment shows a table that contains all certificates associated with the environment. Go to the environment, and then select **Certificates** under **Settings**.
286285
287-
You can manage your certificates through the following actions:
286+
You can manage your certificates by taking the following actions:
288287
289288
| Action | Description |
290289
|--|--|
291-
| Add | Select the **Add certificate** link to add a new certificate. |
290+
| Add | Select **Add certificate** to add a new certificate. |
292291
| Delete | Select the trash can icon to remove a certificate. |
293-
| Renew | The *Health status* field of the table indicates that a certificate is expiring soon within 60 days of the expiration date. To renew a certificate, select the **Renew certificate** link to upload a new certificate. |
292+
| Renew | The **Health status** field of the table indicates that a certificate is expiring soon within 60 days of the expiration date. To renew a certificate, select the **Renew certificate** link to upload a new certificate. |
294293
295294
### Container app
296295
297-
The *Custom domains* window of the container app presents a list of custom domains associated with the container app.
296+
The **Custom domains** pane of the container app shows a list of custom domains that are associated with the container app. In the left pane, under **Networking**, select **Custom domains**.
298297
299298
You can manage your certificates for an individual domain name by selecting the ellipsis (**...**) button, which opens the certificate binding window. From the following window, you can select a certificate to bind to the selected domain name.
300299
301-
## Next steps
300+
## Next step
302301
303302
> [!div class="nextstepaction"]
304303
> [Authentication in Azure Container Apps](authentication.md)

0 commit comments

Comments
 (0)