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
> Certificates for Application Gateway for Containers must be stored as Kubernetes secrets. Azure Key Vault integration via the [Secrets Store CSI driver](/azure/aks/csi-secrets-store-driver) is not supported because Application Gateway for Containers requires certificates to be local to the cluster and cannot mount them from external volumes. For automated certificate management, consider using [cert-manager with Let's Encrypt](how-to-cert-manager-lets-encrypt-gateway-api.md).
30
+
28
31
1. If following the BYO deployment strategy, ensure that you set up your Application Gateway for Containers resources and ALB Controller ([Add-on](quickstart-deploy-application-gateway-for-containers-alb-controller-addon.md) or [Helm](quickstart-deploy-application-gateway-for-containers-alb-controller-helm.md))
29
32
2. If following the ALB managed deployment strategy, ensure that you provision your ALB Controller ([Add-on](quickstart-deploy-application-gateway-for-containers-alb-controller-addon.md) or [Helm](quickstart-deploy-application-gateway-for-containers-alb-controller-helm.md)) and the Application Gateway for Containers resources via the [ApplicationLoadBalancer custom resource](quickstart-create-application-gateway-for-containers-managed-by-alb-controller.md).
> Certificates for Application Gateway for Containers must be stored as Kubernetes secrets. Azure Key Vault integration via the [Secrets Store CSI driver](/azure/aks/csi-secrets-store-driver) is not supported because Application Gateway for Containers requires certificates to be local to the cluster and cannot mount them from external volumes. For automated certificate management, consider using [cert-manager with Let's Encrypt](how-to-cert-manager-lets-encrypt-ingress-api.md).
27
+
25
28
1. If you follow the BYO deployment strategy, ensure that you set up your Application Gateway for Containers resources and ALB Controller ([Add-on](quickstart-deploy-application-gateway-for-containers-alb-controller-addon.md) or [Helm](quickstart-deploy-application-gateway-for-containers-alb-controller-helm.md))
26
29
2. If you follow the ALB managed deployment strategy, ensure that you provision your ALB Controller ([Add-on](quickstart-deploy-application-gateway-for-containers-alb-controller-addon.md) or [Helm](quickstart-deploy-application-gateway-for-containers-alb-controller-helm.md)) and the Application Gateway for Containers resources via the [ApplicationLoadBalancer custom resource](quickstart-create-application-gateway-for-containers-managed-by-alb-controller.md).
|[Custom health probe](migrate-from-agic-to-agc.md#custom-health-probes)| appgw.ingress.kubernetes.io/health-probe-hostname |[HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy)|[HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy)|
68
-
|[Custom health probe](migrate-from-agic-to-agc.md#custom-health-probes)| appgw.ingress.kubernetes.io/health-probe-port |[HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy)|[HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy)|
68
+
|[Custom health probe](migrate-from-agic-to-agc.md#custom-health-probes)| appgw.ingress.kubernetes.io/health-probe-port |[HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy)|[HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy)|
69
69
|[Custom health probe](migrate-from-agic-to-agc.md#custom-health-probes)| appgw.ingress.kubernetes.io/health-probe-path |[HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy)|[HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy)|
70
70
|[Custom health probe](migrate-from-agic-to-agc.md#custom-health-probes)| appgw.ingress.kubernetes.io/health-probe-status-codes |[HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy)|[HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy)|
71
71
|[Custom health probe](migrate-from-agic-to-agc.md#custom-health-probes)| appgw.ingress.kubernetes.io/health-probe-interval |[HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy)|[HealthCheckPolicy](migrate-from-agic-to-agc.md#healthcheckpolicy)|
@@ -227,6 +227,11 @@ Direct certificate upload and reference to a certificate in Azure Key Vault isn'
227
227
228
228
Secrets should be stored in [AKS Secret Store](/azure/aks/concepts-security#kubernetes-secrets) and referenced by name.
229
229
230
+
> [!IMPORTANT]
231
+
> Application Gateway for Containers requires certificates to be local to the AKS cluster and cannot mount them from external volumes. As a result, using [Azure Key Vault with the Secrets Store CSI driver](/azure/aks/csi-secrets-store-driver) is not supported for Application Gateway for Containers certificates.
232
+
>
233
+
> To use certificates from Azure Key Vault, you must first sync them to Kubernetes secrets. Consider using [cert-manager](how-to-cert-manager-lets-encrypt-gateway-api.md) with Let's Encrypt for automated certificate management, or manually import certificates from Key Vault into Kubernetes secrets.
234
+
230
235
### Establishing backend certificate chain trust
231
236
232
237
AGIC annotation
@@ -249,7 +254,7 @@ Application Gateway for Containers allows customers to reference prebuild TLS po
249
254
250
255
#### Frontend TLS Policy in Gateway API
251
256
252
-
To use this feature, you must use Gateway API. More details on TLS Policy are found [here](tls-policy.md).
257
+
To use this feature, you must use Gateway API. More details on TLS Policy are found in the [TLS Policy documentation](tls-policy.md).
253
258
254
259
>[!Note]
255
260
>The Predefined policy names and cipher suites are different from Application Gateway Ingress Controller. Please refer to the [predefined TLS policy table](tls-policy.md#predefined-tls-policy).
@@ -361,7 +366,7 @@ AGIC annotation
361
366
362
367
Application Gateway for Containers implementation
363
368
364
-
Request timeouts are nonconfigurable in Application Gateway for Containers. A list of default timeout values are documented [here](application-gateway-for-containers-components.md#request-timeouts).
369
+
Request timeouts are nonconfigurable in Application Gateway for Containers. A list of default timeout values are documented in [default timeout values](application-gateway-for-containers-components.md#request-timeouts).
Copy file name to clipboardExpand all lines: articles/application-gateway/for-containers/tls-policy.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,8 +28,8 @@ Application Gateway for Containers offers two predefined security policies. You
28
28
29
29
The following table shows the list of cipher suites and minimum protocol version support for each predefined policy. The ordering of the cipher suites determines the priority order during TLS negotiation. To know the exact ordering of the cipher suites for these predefined policies.
Copy file name to clipboardExpand all lines: articles/application-gateway/ssl-overview.md
+7-14Lines changed: 7 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -120,11 +120,10 @@ The following tables outline the differences in SNI between the v1 and v2 SKU in
120
120
121
121
### Frontend TLS connection (client to application gateway)
122
122
123
-
124
-
|Scenario | v1 | v2 |
123
+
| Scenario | v1 | v2 |
125
124
| --- | --- | --- |
126
-
| If the client specifies SNI header and all the multi-site listeners are enabled with "Require SNI" flag | Returns the appropriate certificate and if the site doesn't exist (according to the server_name), then the connection is reset. | Returns appropriate certificate if available, otherwise, returns the certificate of the first HTTPS listener according to the order specified by the request routing rules associated with the HTTPS listeners|
127
-
| If the client doesn't specify a SNI header and if all the multi-site headers are enabled with "Require SNI" | Resets the connection | Returns the certificate of the first HTTPS listener according to the order specified by the request routing rules associated with the HTTPS listeners
125
+
| If the client specifies SNI header and all the multi-site listeners are enabled with "Require SNI" flag | Returns the appropriate certificate and if the site doesn't exist (according to the server_name), then the connection is reset. | Returns appropriate certificate if available, otherwise, returns the certificate of the first HTTPS listener according to the order specified by the request routing rules associated with the HTTPS listeners|
126
+
| If the client doesn't specify a SNI header and if all the multi-site headers are enabled with "Require SNI" | Resets the connection | Returns the certificate of the first HTTPS listener according to the order specified by the request routing rules associated with the HTTPS listeners|
128
127
| If the client doesn't specify SNI header and if there's a basic listener configured with a certificate | Returns the certificate configured in the basic listener to the client (default or fallback certificate) | Returns the certificate of the HTTPS listener with the highest priority routing rule. The basic listener certificate is **not** used as a fallback. |
129
128
130
129
> [!IMPORTANT]
@@ -139,26 +138,20 @@ The following tables outline the differences in SNI between the v1 and v2 SKU in
139
138
>
140
139
> With this configuration, any connection without a matching SNI header receives the self-signed certificate instead of a valid site certificate. This prevents IP-only connections from obtaining information about your hosted sites.
141
140
142
-
> [!NOTE]
143
-
> For the V1 SKU, when the client doesn't specify an SNI header, it's recommended that the user add a basic listener and rule to present a default SSL/TLS certificate.
144
-
145
-
> [!TIP]
146
-
> The SNI flag can be configured with PowerShell or by using an ARM template. For more information, see [RequireServerNameIndication](/powershell/module/az.network/set-azapplicationgatewayhttplistener#-requireservernameindication) and [Quickstart: Direct web traffic with Azure Application Gateway - ARM template](quick-create-template.md#review-the-template).
147
-
148
141
### Backend TLS connection (application gateway to the backend server)
149
142
150
143
#### For probe traffic
151
144
152
145
153
-
|Scenario | v1 | v2 |
146
+
|Scenario | v1 | v2 |
154
147
| --- | --- | --- |
155
-
| When an FQDN or SNI is configured | Set as FQDN from the backend pool. As per [RFC 6066](https://tools.ietf.org/html/rfc6066), literal IPv4 and IPv6 addresses aren't permitted in SNI hostname. | The SNI value is set based on the [TLS validation type](configuration-http-settings.md?tabs=backendhttpsettings#backend-https-validation-settings) in the Backend Settings.<br><br> 1. **Complete validation** – The probe uses the SNI in the following order of precedence:<br> a) Custom Health Probe's hostname <br> b) Backend Setting's hostname (as per Overridden value or Pick from backend server) <br><br> 2. **Configurable** <br> Use specific SNI: The probes use this fixed hostname for validation.<br> Skip SNI: No Subject Name validation.
156
-
| When an FQDN or SNI is NOT configured (only IP address is available) | SNI (server_name) won’t be set. <br> **Note:** In this case, the backend server should be able to return a default/fallback certificate and this should be allow-listed in HTTP settings under authentication certificate. If there’s no default/fallback certificate configured in the backend server and SNI is expected, the server might reset the connection and will lead to probe failures | If the Custom Probe or Backend Settings use an IP address in the hostname field, the SNI is not set, in accordance with [RFC 6066](https://tools.ietf.org/html/rfc6066). This includes cases where the default probe uses 127.0.0.1. |
148
+
| When an FQDN or SNI is configured | Set as FQDN from the backend pool. As per [RFC 6066](https://tools.ietf.org/html/rfc6066), literal IPv4 and IPv6 addresses aren't permitted in SNI hostname. | The SNI value is set based on the [TLS validation type](configuration-http-settings.md?tabs=backendhttpsettings#backend-https-validation-settings) in the Backend Settings.<br><br> 1. **Complete validation** – The probes uses the SNI in the following order of precedence:<br> a) Custom Health Probe's hostname <br> b) Backend Setting's hostname (as per Overridden value or Pick from backend server) <br><br> 2. **Configurable** <br> Use specific SNI: The probes use this fixed hostname for validation.<br> Skip SNI: No Subject Name validation.|
149
+
| When an FQDN or SNI is NOT configured (only IP address is available) | SNI (server_name) won’t be set. <br> **Note:** In this case, the backend server should be able to return a default/fallback certificate and this should be allow-listed in HTTP settings under authentication certificate. If there’s no default/fallback certificate configured in the backend server and SNI is expected, the server might reset the connection and will lead to probe failures | If the Custom Probe or Backend Settings use an IP address in the hostname field, the SNI is not set, in accordance with [RFC 6066](https://tools.ietf.org/html/rfc6066). This includes cases where the default probe uses 127.0.0.1. |
157
150
158
151
#### For live traffic
159
152
160
153
161
-
|Scenario | v1 | v2 |
154
+
|Scenario | v1 | v2 |
162
155
| --- | --- | --- |
163
156
| When an FQDN or SNI is available | The SNI is set using the backend server's FQDN. | The SNI value is set based on the [TLS validation type](configuration-http-settings.md?tabs=backendhttpsettings#backend-https-validation-settings) in the Backend Settings.<br><br> 1. **Complete validation** – SNI is set according to the following order of precedence: <br> a) Backend Setting’s hostname (as per Overridden value or Pick from backend server) <br> b) Host header of the incoming client request <br><br> 2. **Configurable** <br> Use specific SNI: Uses this fixed hostname for validation. <br> Skip SNI: No Subject Name validation. |
164
157
| When an FQDN or SNI is NOT available (only IP address is available) | SNI won't be set as per [RFC 6066](https://tools.ietf.org/html/rfc6066) if the backend pool entry isn't an FQDN | SNI won't be set as per [RFC 6066](https://tools.ietf.org/html/rfc6066). |
0 commit comments