Application Gateways use a minimum TLS 1.2#
Security · Application Gateway · Rule · 2020_06 · Critical
Application Gateway should only accept a minimum of TLS 1.2.
Description#
The minimum version of TLS that Application Gateways accept is configurable. Older TLS versions are no longer considered secure by industry standards, such as PCI DSS.
Azure lets you disable outdated protocols and require connections to use a minimum of TLS 1.2. By default, TLS 1.0, TLS 1.1, and TLS 1.2 is accepted.
Application Gateway should only accept a minimum of TLS 1.2 to ensure secure connections.
Recommendation#
Consider configuring Application Gateways to accept a minimum of TLS 1.2.
Configure with Azure template#
To deploy Application Gateways that pass this rule use a predefined or custom policy:
- Custom — Set the
properties.sslPolicy.policyType
property toCustom
.- Set the
properties.sslPolicy.minProtocolVersion
property toTLSv1_2
. - Set the
properties.sslPolicy.cipherSuites
property to a list of supported ciphers. For example:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- Set the
- Predefined — Set the
properties.sslPolicy.policyType
property toPredefined
.- Set the
properties.sslPolicy.policyName
property to a supported predefined policy such asAppGwSslPolicy20220101S
.
- Set the
For example:
{
"type": "Microsoft.Network/applicationGateways",
"apiVersion": "2023-09-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"zones": [
"1",
"2",
"3"
],
"properties": {
"sku": {
"name": "WAF_v2",
"tier": "WAF_v2"
},
"sslPolicy": {
"policyType": "Custom",
"minProtocolVersion": "TLSv1_2",
"cipherSuites": [
"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
]
}
}
}
Configure with Bicep#
To deploy Application Gateways that pass this rule use a predefined or custom policy:
- Custom — Set the
properties.sslPolicy.policyType
property toCustom
.- Set the
properties.sslPolicy.minProtocolVersion
property toTLSv1_2
. - Set the
properties.sslPolicy.cipherSuites
property to a list of supported ciphers. For example:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- Set the
- Predefined — Set the
properties.sslPolicy.policyType
property toPredefined
.- Set the
properties.sslPolicy.policyName
property to a supported predefined policy such asAppGwSslPolicy20220101S
.
- Set the
For example:
resource app_gw 'Microsoft.Network/applicationGateways@2023-09-01' = {
name: name
location: location
zones: [
'1'
'2'
'3'
]
properties: {
sku: {
name: 'WAF_v2'
tier: 'WAF_v2'
}
sslPolicy: {
policyType: 'Custom'
minProtocolVersion: 'TLSv1_2'
cipherSuites: [
'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384'
'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256'
'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384'
'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256'
]
}
}
}
Configure with Azure PowerShell#
$gw = Get-AzApplicationGateway -Name '<name>' -ResourceGroupName '<resource_group>'
Set-AzApplicationGatewaySslPolicy -ApplicationGateway $gw -PolicyType Custom -MinProtocolVersion TLSv1_2 -CipherSuite 'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384', 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256', 'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384', 'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256'
Links#
- SE:07 Encryption
- DP-3: Encrypt sensitive data in transit
- Application Gateway SSL policy overview
- Configure SSL policy versions and cipher suites on Application Gateway
- Overview of TLS termination and end to end TLS with Application Gateway
- Predefined TLS policy
- Cipher suites
- Limitations
- Azure deployment reference