Aracılığıyla paylaş


Application Gateway'de TLS Sonlandırma ile uygulamaları İnternet'te kullanıma sunma

Not

Azure Spring Apps, Azure Spring Cloud hizmetinin yeni adıdır. Hizmetin yeni bir adı olsa da, ekran görüntüleri, videolar ve diyagramlar gibi varlıkları güncelleştirmek için çalışırken bazı yerlerde eski adı bir süre görürsünüz.

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.

  1. Azure Spring Apps'i sanal ağa dağıtma başlığındaki yönergeleri izleyin.
  2. Özel bir ağda uygulamanıza erişme başlığındaki yönergeleri izleyin.
  3. 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.
  4. 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.
  5. 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.ioekli 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.ioyapılandırın.
  6. 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_FQDNURI'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

Sonraki adımlar