Application Gateway에서 TLS/SSL 정책 버전 및 암호 그룹을 구성하는 방법을 알아봅니다. TLS 정책 버전 및 활성화된 암호화 도구 모음의 다양한 구성을 포함하는 미리 정의된 정책 목록에서 선택할 수 있습니다. 요구 사항에 따라 사용자 지정 TLS 정책을 정의할 수도 있습니다.
중요합니다
Application Gateway에서 보안을 강화하려면 최소 TLS 프로토콜 버전으로 TLS 1.2를 사용하는 것이 좋습니다. 2025년 8월 31일부터 TLS 1.0 및 1.1에 대한 지원이 중단되므로 Azure Application Gateway와 상호 작용하는 모든 클라이언트 및 백 엔드 서버는 TLS(전송 계층 보안) 1.2 이상을 사용해야 합니다.
비고
Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
사용 가능한 TLS 옵션 가져오기
이 cmdlet은 Get-AzApplicationGatewayAvailableSslOptions 사용 가능한 미리 정의된 정책, 사용 가능한 암호 그룹 및 구성할 수 있는 프로토콜 버전의 목록을 제공합니다. 다음 예제에서는 cmdlet을 실행하여 출력하는 예제를 보여줍니다.
중요합니다
기본 TLS 정책은 API 버전 2023-02-01 이상에 대해 AppGwSslPolicy20220101로 설정됩니다. 자세한 내용은 TLS 정책 개요를 참조하세요.
DefaultPolicy: AppGwSslPolicy20150501
PredefinedPolicies:
/subscriptions/xxx-xxx/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/Applic
ationGatewaySslPredefinedPolicy/AppGwSslPolicy20150501
/subscriptions/xxx-xxx/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/Applic
ationGatewaySslPredefinedPolicy/AppGwSslPolicy20170401
/subscriptions/xxx-xxx/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/Applic
ationGatewaySslPredefinedPolicy/AppGwSslPolicy20170401S
/subscriptions/xxx-xxx/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/Applic
ationGatewaySslPredefinedPolicy/AppGwSslPolicy20220101
/subscriptions/xxx-xxx/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/Applic
ationGatewaySslPredefinedPolicy/AppGwSslPolicy20220101S
AvailableCipherSuites:
TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
TLS_DHE_DSS_WITH_AES_256_CBC_SHA
TLS_DHE_DSS_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
AvailableProtocols:
TLSv1_0
TLSv1_1
TLSv1_2
TLSv1_3
미리 정의된 TLS 정책 나열
Application Gateway에는 사용할 수 있는 미리 정의된 여러 정책이 함께 제공됩니다. cmdlet은 Get-AzApplicationGatewaySslPredefinedPolicy 이러한 정책을 검색합니다. 각 정책에는 서로 다른 프로토콜 버전과 암호화 도구 모음이 활성화되어 있습니다. 이러한 미리 정의된 정책을 사용하여 애플리케이션 게이트웨이에서 TLS 정책을 신속하게 구성할 수 있습니다. 기본적으로 특정 TLS 정책이 정의되지 않은 경우 AppGwSslPolicy20150501 이 선택됩니다.
다음 출력은 실행 Get-AzApplicationGatewaySslPredefinedPolicy의 예입니다.
Name: AppGwSslPolicy20150501
MinProtocolVersion: TLSv1_0
CipherSuites:
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_GCM_SHA384
...
Name: AppGwSslPolicy20170401
MinProtocolVersion: TLSv1_1
CipherSuites:
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
...
사용자 지정 TLS 정책 구성
사용자 지정 TLS 정책을 구성할 때 PolicyType, MinProtocolVersion, CipherSuite 및 ApplicationGateway 매개 변수를 전달합니다. 다른 매개 변수를 전달하려고 하면 Application Gateway를 만들거나 업데이트할 때 오류가 발생합니다. 다음 예제에서는 애플리케이션 게이트웨이에서 사용자 지정 TLS 정책을 설정합니다. 최소 프로토콜 버전을 TLSv1_1 설정하고 다음 암호 그룹을 사용하도록 설정합니다.
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
# get an application gateway resource
$gw = Get-AzApplicationGateway -Name AdatumAppGateway -ResourceGroup AdatumAppGatewayRG
# set the TLS policy on the application gateway
Set-AzApplicationGatewaySslPolicy -ApplicationGateway $gw -PolicyType Custom -MinProtocolVersion TLSv1_1 -CipherSuite "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
# validate the TLS policy locally
Get-AzApplicationGatewaySslPolicy -ApplicationGateway $gw
# update the gateway with validated TLS policy
Set-AzApplicationGateway -ApplicationGateway $gw
중요합니다
- Application Gateway v1 SKU(Standard 또는 WAF)에서 사용자 지정 SSL 정책을 사용하는 경우, 필수 암호인 “TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256”을 목록에 추가해야 합니다. 이 암호는 Application Gateway v1 SKU에서 메트릭과 로깅을 사용하도록 설정하는 데 필요합니다. Application Gateway v2 SKU(Standard_v2 또는 WAF_v2)의 경우에는 필수가 아닙니다.
- TLSv1.3의 암호 그룹 "TLS_AES_128_GCM_SHA256" 및 "TLS_AES_256_GCM_SHA384"는 사용자 지정할 수 없으며 최소 TLS 버전이 1.2 또는 1.3인 CustomV2 정책을 설정할 때 기본적으로 포함됩니다. 이러한 두 암호 그룹은 포털을 제외하고 세부 정보 가져오기 출력에 표시되지 않습니다.
최소 프로토콜 버전을 1.3으로 설정하려면 다음 명령을 사용해야 합니다.
Set-AzApplicationGatewaySslPolicy -ApplicationGateway $AppGW -MinProtocolVersion TLSv1_3 -PolicyType CustomV2 -CipherSuite @()
이 그림에서는 최소 프로토콜 버전 1.2 및 1.3을 사용하는 CustomV2 정책의 사용에 대해 자세히 설명합니다.
미리 정의된 TLS 정책을 사용하여 애플리케이션 게이트웨이 만들기
미리 정의된 TLS 정책을 구성할 때 PolicyType, PolicyName 및 ApplicationGateway 매개 변수를 전달합니다. 다른 매개 변수를 전달하려고 하면 Application Gateway를 만들거나 업데이트할 때 오류가 발생합니다.
다음 예제에서는 미리 정의된 TLS 정책을 사용하여 새 애플리케이션 게이트웨이를 만듭니다.
# Create a resource group
$rg = New-AzResourceGroup -Name ContosoRG -Location "East US"
# Create a subnet for the application gateway
$subnet = New-AzVirtualNetworkSubnetConfig -Name subnet01 -AddressPrefix 10.0.0.0/24
# Create a virtual network with a 10.0.0.0/16 address space
$vnet = New-AzVirtualNetwork -Name appgwvnet -ResourceGroupName $rg.ResourceGroupName -Location "East US" -AddressPrefix 10.0.0.0/16 -Subnet $subnet
# Retrieve the subnet object for later use
$subnet = $vnet.Subnets[0]
# Create a public IP address
$publicip = New-AzPublicIpAddress -ResourceGroupName $rg.ResourceGroupName -name publicIP01 -___location "East US" -AllocationMethod Dynamic
# Create an ip configuration object
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet
# Create a backend pool for backend web servers
$pool = New-AzApplicationGatewayBackendAddressPool -Name pool01 -BackendIPAddresses 134.170.185.46, 134.170.188.221,134.170.185.50
# Define the backend http settings to be used.
$poolSetting = New-AzApplicationGatewayBackendHttpSettings -Name poolsetting01 -Port 80 -Protocol Http -CookieBasedAffinity Enabled
# Create a new port for TLS
$fp = New-AzApplicationGatewayFrontendPort -Name frontendport01 -Port 443
# Upload an existing pfx certificate for TLS offload
$password = ConvertTo-SecureString -String "P@ssw0rd" -AsPlainText -Force
$cert = New-AzApplicationGatewaySslCertificate -Name cert01 -CertificateFile C:\folder\contoso.pfx -Password $password
# Create a frontend IP configuration for the public IP address
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name fipconfig01 -PublicIPAddress $publicip
# Create a new listener with the certificate, port, and frontend ip.
$listener = New-AzApplicationGatewayHttpListener -Name listener01 -Protocol Https -FrontendIPConfiguration $fipconfig -FrontendPort $fp -SslCertificate $cert
# Create a new rule for backend traffic routing
$rule = New-AzApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool
# Define the size of the application gateway
$sku = New-AzApplicationGatewaySku -Name Standard_Small -Tier Standard -Capacity 2
# Configure the TLS policy to use a different predefined policy
$policy = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName AppGwSslPolicy20170401S
# Create the application gateway.
$appgw = New-AzApplicationGateway -Name appgwtest -ResourceGroupName $rg.ResourceGroupName -Location "East US" -BackendAddressPools $pool -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku -SslCertificates $cert -SslPolicy $policy
미리 정의된 TLS 정책으로 기존 애플리케이션 게이트웨이 업데이트
사용자 지정 TLS 정책을 설정하려면 PolicyType, MinProtocolVersion, CipherSuite 및 ApplicationGateway 매개 변수를 전달합니다. 미리 정의된 TLS 정책을 설정하려면 PolicyType, PolicyName 및 ApplicationGateway 매개 변수를 전달합니다. 다른 매개 변수를 전달하려고 하면 Application Gateway를 만들거나 업데이트할 때 오류가 발생합니다.
비고
새 미리 정의되거나 Customv2 정책을 사용하면 전체 게이트웨이(SSL 정책 및 SSL 프로필)의 SSL 보안 및 성능 태세가 향상됩니다. 따라서 이전 정책과 새 정책은 공존할 수 없습니다. 이전 TLS 버전 또는 암호(예: TLS v1.0)가 필요한 클라이언트가 있는 경우 게이트웨이 전체에서 미리 정의된 이전 또는 사용자 지정 정책을 사용해야 합니다.
다음 예제에는 사용자 지정 정책 및 미리 정의된 정책에 대한 코드 샘플이 있습니다. 사용하려는 정책의 주석 처리를 제거합니다.
# You have to change these parameters to match your environment.
$AppGWname = "YourAppGwName"
$RG = "YourResourceGroupName"
$AppGw = get-Azapplicationgateway -Name $AppGWname -ResourceGroupName $RG
# Choose either custom policy or predefined policy and uncomment the one you want to use.
# TLS Custom Policy
# Set-AzApplicationGatewaySslPolicy -PolicyType Custom -MinProtocolVersion TLSv1_2 -CipherSuite "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_RSA_WITH_AES_128_CBC_SHA256" -ApplicationGateway $AppGw
# TLS Predefined Policy
# Set-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20170401S" -ApplicationGateway $AppGW
# Update AppGW
# The TLS policy options are not validated or updated on the Application Gateway until this cmdlet is executed.
$SetGW = Set-AzApplicationGateway -ApplicationGateway $AppGW
다음 단계
APPLICATION Gateway 리디렉션 개요를 방문하여 HTTP 트래픽을 HTTPS 엔드포인트로 리디렉션하는 방법을 알아봅니다.
포털을 통해 특정 SSL 수신기에 대한 SSL 정책 설정 방법을 확인하십시오. SSL 수신기별 정책 설정