Application Gateway'de TLS Sonlandırma ile uygulamaları İnternet'te kullanıma sunma
Not
Temel, Standart ve Kurumsal planları, 3 yıllık kullanımdan kaldırma süresiyle Mart 2025 ortasından itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. Daha fazla bilgi için bkz . Azure Spring Apps kullanımdan kaldırma duyurusu.
Standart tüketim ve ayrılmış plan, altı ay sonra tamamen kapatılarak 30 Eylül 2024'den itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. Daha fazla bilgi için bkz . Azure Spring Apps Standart tüketimini ve ayrılmış planı Azure Container Apps'e geçirme.
Bu makalede Application Gateway kullanarak uygulamaların İnternet'te nasıl kullanıma sunulur?
Sanal ağınızda (VNET) bir Azure Spring Apps hizmet örneği dağıtıldığında, hizmet örneğindeki uygulamalara yalnızca özel ağ üzerinden erişilebilir. Uygulamaların İnternet'te erişilebilir olmasını sağlamak için Azure Uygulaması lication Gateway ile tümleştirmeniz gerekir. Gelen şifrelenmiş trafiğin şifresi uygulama ağ geçidinde çözülebilir veya uçtan uca TLS/SSL elde etmek için Şifrelenmiş Azure Spring Apps'e geçirilebilir. Geliştirme ve test amacıyla, bu kılavuzda ele alınan uygulama ağ geçidinde SSL sonlandırma ile başlayabilirsiniz. Üretim için, uygulamaları bir sanal ağda uçtan uca TLS ile kullanıma sunma bölümünde açıklandığı gibi özel sertifika ile uçtan uca TLS/SSL önerilir.
Önkoşullar
- Azure CLI 2.0.4 veya sonraki sürümü.
- Varsayılan
.private.azuremicroservices.io
etki alanı soneki kullanılarak özel ağ üzerinden erişilebilen bir uygulamayla sanal ağda dağıtılan bir Azure Spring Apps hizmet örneği. Daha fazla bilgi için bkz . Azure Spring Apps'i sanal ağda dağıtma - Uygulamaya erişmek için kullanılacak özel bir etki alanı.
- Key Vault'ta depolanan ve HTTPS dinleyicisini oluşturmak için kullanılacak özel etki alanıyla eşleşen bir sertifika. Daha fazla bilgi için bkz . Öğretici: Azure Key Vault'ta sertifika içeri aktarma.
Azure Spring Apps için Application Gateway'i yapılandırma
Tarayıcı tarafından görüldüğü gibi etki alanı adının Application Gateway'in trafiği Azure Spring Apps arka ucuna yönlendirmek için kullandığı ana bilgisayar adıyla aynı olmasını öneririz. Bu öneri, Azure Spring Apps'te barındırılan ve bir sanal ağda bulunan uygulamaları kullanıma sunmak için Application Gateway kullanırken en iyi deneyimi sağlar. Application Gateway tarafından sunulan etki alanı Azure Spring Apps tarafından kabul edilen etki alanından farklıysa tanımlama bilgileri ve oluşturulan yeniden yönlendirme URL'leri (örneğin) bozulabilir. Daha fazla bilgi için bkz . Konak adı koruma.
Özel bir sanal ağda Azure Spring Apps'in önünde Application Gateway'i yapılandırmak için aşağıdaki adımları kullanın.
- Azure Spring Apps'i sanal ağa dağıtma başlığındaki yönergeleri izleyin.
- Özel bir ağda uygulamanıza erişme başlığındaki yönergeleri izleyin.
- Seçtiğiniz etki alanı için bir sertifika alın ve bunu Key Vault'ta depolayın. Daha fazla bilgi için bkz . Öğretici: Azure Key Vault'ta sertifika içeri aktarma.
- Azure Spring Apps'e dağıtılan bir uygulamada Key Vault'tan özel bir etki alanı ve ilgili sertifika yapılandırın. Daha fazla bilgi için bkz . Öğretici: Mevcut özel etki alanını Azure Spring Apps ile eşleme.
- Application Gateway'i aşağıdaki listeye göre yapılandırılmış bir sanal ağa dağıtın:
- arka uç havuzunda Azure Spring Apps'i kullanın ve ile
private.azuremicroservices.io
ekli etki alanı soneki tarafından başvurulur. - Key Vault'tan aynı sertifikayı kullanan bir HTTPS dinleyicisi ekleyin.
- Sanal ağı, ile belirtilen etki alanı soneki yerine Azure Spring Apps'te yapılandırılmış özel etki alanı adını kullanan HTTP ayarlarıyla
private.azuremicroservices.io
yapılandırın.
- arka uç havuzunda Azure Spring Apps'i kullanın ve ile
- Genel DNS'nizi uygulama ağ geçidine işaret eden şekilde yapılandırın.
Değişkenleri tanımlama
Ardından, Azure Spring Apps'i bir sanal ağda dağıtma bölümünde belirtildiği gibi oluşturduğunuz kaynak grubu ve sanal ağ için değişkenleri tanımlamak için aşağıdaki komutları kullanın. <...> yer tutucularını gerçek ortamınıza göre gerçek değerlerle değiştirin. tanımladığınızda SPRING_APP_PRIVATE_FQDN
URI'den kaldırın https://
.
export SUBSCRIPTION='<subscription-id>'
export RESOURCE_GROUP='<resource-group-name>'
export LOCATION='eastus'
export SPRING_CLOUD_NAME='<name-of-Azure-Spring-Apps-instance>'
export APPNAME='<name-of-app-in-Azure-Spring-Apps>'
export SPRING_APP_PRIVATE_FQDN='$APPNAME.private.azuremicroservices.io'
export VIRTUAL_NETWORK_NAME='azure-spring-apps-vnet'
export APPLICATION_GATEWAY_SUBNET_NAME='app-gw-subnet'
export APPLICATION_GATEWAY_SUBNET_CIDR='10.1.2.0/24'
Azure'da oturum açma
Azure CLI'da oturum açmak ve etkin aboneliğinizi seçmek için aşağıdaki komutu kullanın.
az login
az account set --subscription $SUBSCRIPTION
Azure Spring Apps'te genel etki alanı adını yapılandırma
Trafik, genel etki alanı adını kullanarak Azure Spring Apps'te dağıtılan uygulamayı girer. Uygulamanızı HTTP üzerinden bu ana bilgisayar adını dinleyecek şekilde yapılandırmak için aşağıdaki komutları kullanarak uygulamanıza özel bir etki alanı ekleyin ve ...> yer tutucularını gerçek değerlerle değiştirin<:
export KV_NAME='<name-of-key-vault>'
export KV_RG='<resource-group-name-of-key-vault>'
export CERT_NAME_IN_KV='<name-of-certificate-with-intermediaries-in-key-vault>'
export DOMAIN_NAME=myapp.mydomain.com
az spring app custom-domain bind \
--resource-group $RESOURCE_GROUP \
--service $SPRING_CLOUD_NAME \
--domain-name $DOMAIN_NAME \
--app $APPNAME
Ağ kaynakları oluşturma
Oluşturulacak uygulama ağ geçidi, Azure Spring Apps hizmet örneğiyle aynı sanal ağa katılır. İlk olarak, sanal ağda uygulama ağ geçidi için yeni bir alt ağ oluşturun, ardından aşağıdaki örnekte gösterildiği gibi uygulama ağ geçidinin ön ucu olarak bir genel IP adresi oluşturun.
export APPLICATION_GATEWAY_PUBLIC_IP_NAME='app-gw-public-ip'
az network vnet subnet create \
--name $APPLICATION_GATEWAY_SUBNET_NAME \
--resource-group $RESOURCE_GROUP \
--vnet-name $VIRTUAL_NETWORK_NAME \
--address-prefix $APPLICATION_GATEWAY_SUBNET_CIDR
az network public-ip create \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--name $APPLICATION_GATEWAY_PUBLIC_IP_NAME \
--allocation-method Static \
--sku Standard
Uygulama ağ geçidi için yönetilen kimlik oluşturma
Sertifikayı okumak için uygulama ağ geçidinizin Key Vault'a erişebilmesi gerekir. Bunu yapmak için, uygulama ağ geçidi kullanıcı tarafından atanan yönetilen kimliği kullanır. Daha fazla bilgi için bkz. Azure kaynakları için yönetilen kimlikler nelerdir? Aşağıdaki komutu kullanarak yönetilen kimliği oluşturun ve ...> yer tutucusunu <değiştirin:
export APPGW_IDENTITY_NAME='<name-for-appgw-managed-identity>'
az identity create \
--resource-group $RESOURCE_GROUP \
--name $APPGW_IDENTITY_NAME
Ardından, yönetilen kimliğin öğesini getirmek objectId
için aşağıdaki komutu kullanın. Bu değer daha sonra Key Vault'taki sertifikaya erişim hakları vermek için kullanılacaktır.
export APPGW_IDENTITY_CLIENTID=$(az identity show \
--resource-group $RESOURCE_GROUP \
--name $APPGW_IDENTITY_NAME \
--query clientId \
--output tsv)
export APPGW_IDENTITY_OID=$(az ad sp show \
--id $APPGW_IDENTITY_CLIENTID \
--query objectId \
--output tsv)
Key Vault'ta ilke ayarlama
Uygulama ağ geçidinin yönetilen kimliğinin Key Vault'ta depolanan sertifikaya erişmesine izin vermek için aşağıdaki komutu kullanarak Key Vault'ı yapılandırın:
az keyvault set-policy \
--resource-group $KV_RG \
--name $KV_NAME \
--object-id $APPGW_IDENTITY_OID \
--secret-permissions get list \
--certificate-permissions get list
Uygulama ağ geçidi oluşturma
kullanarak az network application-gateway create
bir uygulama ağ geçidi oluşturun ve arka uç havuzunda sunucu olarak uygulamanızın özel tam etki alanı adını (FQDN) belirtin. Kullanıcı tarafından atanan yönetilen kimliği kullandığınızdan emin olun ve sertifikanın gizli dizi kimliğini kullanarak Key Vault'taki sertifikaya işaret edin.
export APPGW_NAME='<name-for-application-gateway>'
export CERT_NAME_IN_KV='<name-of-certificate-in-key-vault>'
export KEYVAULT_SECRET_ID_FOR_CERT=$(az keyvault certificate show \
--name $CERT_NAME_IN_KV \
--vault-name $KV_NAME \
--query sid \
--output tsv)
az network application-gateway create \
--name $APPGW_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--capacity 2 \
--sku Standard_v2 \
--frontend-port 443 \
--http-settings-cookie-based-affinity Disabled \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address $APPLICATION_GATEWAY_PUBLIC_IP_NAME \
--vnet-name $VIRTUAL_NETWORK_NAME \
--subnet $APPLICATION_GATEWAY_SUBNET_NAME \
--servers $SPRING_APP_PRIVATE_FQDN \
--key-vault-secret-id $KEYVAULT_SECRET_ID_FOR_CERT \
--identity $APPGW_IDENTITY_NAME
Azure'ın uygulama ağ geçidini oluşturması 30 dakika kadar sürebilir.
HTTP ayarlarını, etki alanı adını arka uçta kullanacak şekilde güncelleştirme
Ile Azure Spring Apps'e trafik göndermek için HTTP ayarlarını, ile birlikte gelen .private.azuremicroservices.io
etki alanı soneki yerine ana bilgisayar adı olarak genel etki alanı adını kullanacak şekilde güncelleştirin.
az network application-gateway http-settings update \
--resource-group $RESOURCE_GROUP \
--gateway-name $APPGW_NAME \
--host-name-from-backend-pool false \
--host-name $DOMAIN_NAME \
--name appGatewayBackendHttpSettings
Uygulama ağ geçidinin dağıtımını denetleme
Oluşturulduktan sonra aşağıdaki komutu kullanarak arka uç durumunu denetleyin. Bu komutun çıkışı, uygulama ağ geçidinin özel tam etki alanı adı (FQDN) aracılığıyla uygulamanıza ulaşıp ulaşmadığını belirlemenizi sağlar.
az network application-gateway show-backend-health \
--name $APPGW_NAME \
--resource-group $RESOURCE_GROUP
Çıkış, aşağıdaki örnekte gösterildiği gibi arka uç havuzunun iyi durumda olduğunu gösterir:
{
"backendAddressPools": [
{
"backendHttpSettingsCollection": [
{
"servers": [
{
"address": "my-azure-spring-apps-hello-vnet.private.azuremicroservices.io",
"health": "Healthy",
"healthProbeLog": "Success. Received 200 status code",
"ipConfiguration": null
}
]
}
]
}
]
}
DNS'yi yapılandırma ve uygulamaya erişme
CNAME veya A kaydı kullanarak genel DNS'yi uygulama ağ geçidine işaret eden şekilde yapılandırın. Aşağıdaki komutu kullanarak uygulama ağ geçidinin genel adresini bulabilirsiniz:
az network public-ip show \
--resource-group $RESOURCE_GROUP \
--name $APPLICATION_GATEWAY_PUBLIC_IP_NAME \
--query [ipAddress] \
--output tsv
Artık genel etki alanı adını kullanarak uygulamaya erişebilirsiniz.
Kaynakları temizleme
Sonraki makalelerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz. Artık gerekli olmadığında kaynak grubunu silin; bu da kaynak grubundaki kaynakları siler. Azure CLI kullanarak kaynak grubunu silmek için aşağıdaki komutu kullanın:
az group delete --name $RESOURCE_GROUP