تمرين - تكوين مجموعات الواجهة الخلفية للتشفير

مكتمل

تريد تنفيذ التشفير من طرف إلى طرف لتطبيق مدخل الشحن. يساعد تشفير جميع البيانات بين المستخدمين والخوادم على ضمان عدم تمكن أي مستخدم غير مصرح به من اعتراض البيانات وقراءتها.

في هذه الوحدة، ستقوم بإعداد تطبيق الويب وبوابة التطبيق. وبعد ذلك، ستقوم بإنشاء بعض شهادات SSL الموقعة ذاتياً وتمكين التشفير في مجموعة الواجهة الخلفية للمساعدة على تأمين نسبة استخدام الشبكة من بوابة التطبيق إلى خوادمك.

تبرز الصورة التالية العناصر التي تقوم بتكوينها في هذا التمرين. تقوم بإعداد بوابة تطبيق باستخدام Azure Application Gateway v2.

Diagram that highlights the elements (backend pool, SSL certificate, and HTTP settings) created in this exercise.

توزيع جهاز ظاهري وبوابة التطبيق

  1. افتح Azure Cloud Shell في المستعرض الخاص بك وسجل الدخول إلى الدليل مع الوصول إلى الاشتراك الذي تريد إنشاء الموارد فيه. سنستخدم بيئة Bash shell لهذا التمرين.

  2. قم بتشغيل الأمر التالي في Cloud Shell لإنشاء مجموعة موارد لمواردك. استبدل <resource group name> باسم مجموعة الموارد الخاصة بك، و<location> بمنطقة Azure التي ترغب في توزيع الموارد فيها.

    az group create --resource-group <resource group name> --location <location>
    
  3. قم بتشغيل الأمر التالي في Cloud Shell لإنشاء متغير لتخزين اسم مجموعة الموارد الخاصة بك:

    export rgName=<resource group name>
    
    
  4. في Azure Cloud Shell، قم بتشغيل الأمر التالي لتنزيل التعليمات البرمجية المصدر لمدخل الشحن:

    git clone https://github.com/MicrosoftDocs/mslearn-end-to-end-encryption-with-app-gateway shippingportal
    
  5. الانتقال إلى المجلد shippingportal :

    cd shippingportal
    
  6. قم بتشغيل البرنامج النصي للإعداد التالي لإنشاء الجهاز الظاهري والشهادات وبوابة التطبيق:

    bash setup-infra.sh
    

    إشعار

    يستغرق النص عدة دقائق ليكتمل. اسمح له بالعمل عبر عِدة عمليات لفك البوابة والموارد وتكوينهما. يجب أن ترى نجاح العملية دون أي تحذيرات أو أخطاء.

تحقق من صحة تكوين خادم الويب

  1. قم بتشغيل الأمر التالي لعرض URL لخادم الويب الذي قام البرنامج النصي للإعداد بإنشائه.

    echo https://"$(az vm show \
      --name webservervm1 \
      --resource-group $rgName \
      --show-details \
      --query [publicIps] \
      --output tsv)"
    
  2. انسخ عنوان URL والصقه في مستعرض الويب وانتقل إلى عنوان URL.

    من المرجح أن يعرض المستعرض رسالة تحذير مشابهة للصورة التالية. قد يختلف محتوى رسالة التحذير بحسب المتصفح الذي تستخدمه. الصورة مأخوذة من متصفح Microsoft Edge.

    Screenshot of a warning about an unauthenticated server in Microsoft Edge.

    يحدث هذا التحذير بسبب تكوين خادم الويب من خلال شهادة موقعة ذاتياً لا يمكن مصادقتها. في صفحة التحذير هذه، ابحث عن الرابط وحدده للمتابعة إلى موقع الويب؛ على سبيل المثال، حدد الانتقال إلى صفحة الويب أو حدد خيارات متقدمة ثم متابعة، أو ما يعادلها. تأخذك النتيجة إلى الصفحة الرئيسية لمدخل الشحن، كما هو موضح في الصورة التالية. هذا تطبيق عينة لاختبار صحة تكوين الخادم.

    Screenshot of the shipping portal home page Microsoft Edge.

تكوين مجموعة الواجهة الخلفية للتشفير

  1. قم بتشغيل الأمر التالي للحصول على عنوان IP الخاص للجهاز الظاهري الذي يعمل كخادم ويب.

    echo privateip="$(az vm list-ip-addresses \
      --resource-group $rgName \
      --name webservervm1 \
      --query "[0].virtualMachine.network.privateIpAddresses[0]" \
      --output tsv)"
    
  2. إنشاء متغير لتخزين عنوان IP الخاص بك. استبدل <privateIP> بعنوان IP من الخطوة السابقة.

    export privateip=<privateIP>
    
    
  3. إعداد تجمع الخلفية لبوابة التطبيق باستخدام عنوان IP الخاص للجهاز الظاهري.

    az network application-gateway address-pool create \
      --resource-group $rgName \
      --gateway-name gw-shipping \
      --name ap-backend \
      --servers $privateip
    
  4. قم بتحميل شهادة الجهاز الظاهري في تجمع الواجهة الخلفية إلى بوابة التطبيق كشهادة جذر موثوق بها. أنشأ البرنامج النصي للإعداد هذه الشهادة وخزنها في ملف shipping-ssl.crt .

    az network application-gateway root-cert create \
      --resource-group $rgName \
      --gateway-name gw-shipping \
      --name shipping-root-cert \
      --cert-file server-config/shipping-ssl.crt
    
  5. تكوين إعدادات HTTP لاستخدام الشهادة:

    az network application-gateway http-settings create \
      --resource-group $rgName \
      --gateway-name gw-shipping \
      --name https-settings \
      --port 443 \
      --protocol Https \
      --host-name $privateip
    
  6. قم بتشغيل الأوامر التالية لتعيين الشهادة الموثوق بها لتجمع الواجهة الخلفية إلى الشهادة المثبتة على الجهاز الظاهري للواجهة الخلفية:

    export rgID="$(az group show --name $rgName --query id --output tsv)"
    
    az network application-gateway http-settings update \
        --resource-group $rgName \
        --gateway-name gw-shipping \
        --name https-settings \
        --set trustedRootCertificates='[{"id": "'$rgID'/providers/Microsoft.Network/applicationGateways/gw-shipping/trustedRootCertificates/shipping-root-cert"}]'
    

لديك الآن جهاز ظاهري يقوم بتشغيل موقع مدخل الشحن، وبوابة التطبيق. لقد قمت بتكوين تشفير SSL بين بوابة التطبيق وخادم التطبيق.