البرنامج التعليمي: تكوين بوابة تطبيق مع إنهاء TLS باستخدام مدخل Microsoft Azure

يمكنك استخدام مدخل Microsoft Azure لتكوين بوابة تطبيق مع شهادة TLS termination تستخدم الأجهزة الظاهرية للخوادم الخلفية.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء شهادة موقَّعة ذاتيًا
  • إنشاء بوابة تطبيق من خلال استخدام الشهادة
  • إنشاء الأجهزة الظاهرية المستخدمة بصفتها خوادم خلفية
  • اختبار بوابة التطبيق

في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

المتطلبات الأساسية

  • اشتراك Azure

إنشاء شهادة موقَّعة ذاتيًا

في هذا المقطع، يمكنك استخدام "New-SelfSignedCertificate" لإنشاء شهادة موقعة ذاتياً. تحمل الشهادة إلى مدخل Microsoft Azure عند إنشائك وحدة الإصغاء لبوابة التطبيق.

من حاسوبك المحلي، افتح نافذة Windows PowerShell كمسؤول. شغل الأمر التالي لإنشاء الشهادة:

New-SelfSignedCertificate `
  -certstorelocation cert:\localmachine\my `
  -dnsname www.contoso.com

لا بد أن ترى شيئاً مماثلاً لذلك الرد:

PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my

Thumbprint                                Subject
----------                                -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630  CN=www.contoso.com

استخدم "Export-PfxCertificate" مع بصمة الإبهام التي أُرجعت لتصدير ملف pfx من الشهادة. يتم سرد خوارزميات PFX المدعومة في دالة PFXImportCertStore. تأكد من أن عدد أحرف كلمة مرورك تتراوح بين 4- 12 حرفاً:

$pwd = ConvertTo-SecureString -String <your password> -Force -AsPlainText
Export-PfxCertificate `
  -cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
  -FilePath c:\appgwcert.pfx `
  -Password $pwd

تسجيل الدخول إلى Azure

قم بتسجيل الدخول إلى بوابة Azure.

إنشاء بوابة تطبيق

  1. من قائمة مدخل Microsoft Azure، حدد + Create a resource>Networking>Application Gateway، أو ابحث عن Application Gateway في مربع البحث المدخل.

  2. حدد إنشاء.

علامة تبويبBasics

  1. في علامة التبويب Basics ، أدخل هذه القيم أو حددها:

    • "Resource group": حدد "myResourceGroupAG" لمجموعة الموارد. إذا لم يكن موجوداً، فحدد "Create new" لإنشائه.

    • "Application gateway name": أدخل "myAppGateway" لاسم بوابة التطبيق.

      Create new application gateway: Basics

  2. لكي يتواصل Azure بين الموارد التي تنشئها، فإنه يحتاج إلى شبكة ظاهرية. يمكنك إما إنشاء شبكة ظاهرية جديدة أو استخدام شبكة موجودة. في هذا المثال، تنشئ شبكة ظاهرية جديدة في نفس الوقت الذي تنشئ فيه بوابة التطبيق. يجري إنشاء مثيلات Application Gateway في شبكات فرعية منفصلة. تُنشئ شبكتين فرعيتين في هذا المثال: واحدة لـ application gateway، والأخرى للخوادم الخلفية.

    ضمن تكوين شبكة ظاهرية، أنشئ شبكة ظاهرية جديدة عن طريق تحديد "Create new". في نافذة "Create virtual network" التي تفتح، أدخل القيم التالية لإنشاء شبكة افتراضية وشبكتين فرعيتين:

    • "Name": أدخل "myVNet" لاسم الشبكة الظاهرية.

    • "Subnet name" (الشبكة الفرعية لبوابة التطبيق): ستعرض شبكة "Subnets" شبكة فرعية باسم "Default". قم بتغيير اسم هذه الشبكة الفرعية إلى "myAGSubnet".
      قد لا تحتوي الشبكة الفرعية لبوابة التطبيق إلا على بوابات تطبيق ما. لا يسمح بأي موارد أخرى.

    • "Subnet name" (الشبكة الفرعية لخادم الواجهة الخلفية): في الصف الثاني من شبكة "Subnets"، أدخل "myBackendSubnet" في العمود "Subnet name".

    • "Address range" (الشبكة الفرعية لخادم الواجهة الخلفية): في الصف الثاني من شبكة "Subnets"، أدخل نطاق عناوين لا يتداخل مع نطاق عناوين "myAGSubnet". على سبيل المثال، إذا كان نطاق عناوين "myAGSubnet" هو 10.0.0.0/24، أدخل 10.0.1.0/24 لنطاق العناوين "myBackendSubnet".

    حدد "OK" لإغلاق نافذة "Create virtual network" وحفظ إعدادات الشبكة الظاهرية.

    Create new application gateway: virtual network

  3. في علامة التبويب الأساسيات، وافق على القيم الافتراضية للإعدادات الأخرى ثم حدد "Next: Frontends".

علامة تبويب الواجهات

  1. في علامة التبويب Frontends، تحقق من تعيين Frontend IP address type إلى Public.
    يمكنك تكوين IP للواجهة الأمامية ليكون عاماً أو خاصاً حسب حالة استخدامك. في هذا المثال، ستختار عنوان IP للواجهة الأمامية.

    إشعار

    بالنسبة لـ Application Gateway v2 SKU، يمكنك فقط اختيار تكوين IP للواجهة الأمامية "Public". لم يتم تمكين تكوين IP للواجهة الأمامية الخاصة حاليًا لـ v2 SKU هذا.

  2. حدد "Add new" لـ عنوان IP العام وأدخل myAGPublicIPAddress لاسم عنوان IP العام، ثم حدد "OK".

    Create new application gateway: frontends

  3. حدد Next: Backends.

علامة تبويب "Backends"

يُستخدم التجمع الخلفي لتوجيه الطلبات إلى الخوادم الخلفية التي تخدم الطلب. يمكن أن تتكون تجمعات الواجهة الخلفية من NICs ومجموعات مقياس الجهاز الظاهري وعناوين IP العامة وعناوين IP الداخلية وأسماء المجال المؤهلة بالكامل (FQDN) والخلفيات متعددة المستأجرين مثل Azure App Service. في هذا المثال، تنشئ تجمع واجهة خلفية فارغاً باستخدام بوابة تطبيقك وتضيف أهداف الواجهة الخلفية إلى تجمع الواجهة الخلفية.

  1. في علامة التبويب Backends، حدد Add a backend pool.

  2. في نافذة Add a backend pool التي تفتح، أدخِل القيم التالية لإنشاء تجمع خلفي فارغ:

    • "Name": أدخل myBackendPool لاسم تجمع الواجهة الخلفية.
    • إضافة تجمع واجهة خلفية بدون أهداف: حدد "Yes" لإنشاء تجمع واجهة خلفية بدون أهداف. تضيف أهداف الواجهة الخلفية بعد إنشاء بوابة التطبيق.
  3. في نافذة Add a backend pool حدد Add لحفظ تكوين التجمع الخلفي والعودة إلى علامة التبويب Backends.

    Create new application gateway: backends

  4. في علامة التبويب Backends حدد Next: Configuration.

علامة التبويب "التكوين"

في علامة التبويب Configuration ستوصل التجمع الأمامي والخلفي التي أنشأته باستخدام قاعدة تحويل.

  1. حدد "Add a routing rule" من عمود "Routing rules".

  2. من نافذة "Add a routing rule" التي تفتح، أدخل myRoutingRule في "Rule name".

  3. تتطلب قاعدة التوجيه وحدة إصغاء. من علامة التبويب "Listener" داخل نافذة "Add a routing rule"، أدخل القيم التالية لوحدة الإصغاء:

    • "Listener name": أدخل myListener لاسم وحدة الإصغاء.
    • "Frontend IP": حدد Public لاختيار عنوان IP العام الذي أنشأته للواجهة الأمامية.
    • "Protocol": اختر HTTPS.
    • "Port": تحقق من إدخال 443 للمنفذ.

    من "HTTPS Settings":

    • "Choose a certificate" - حدد "Upload a "certificate.

    • "PFX certificate file" - تصفح للوصول إلى ملف c:\appgwcert.pfx الذي أنشأته مسبقاً وحدده.

    • "Certificate name" - اكتب mycert1 لاسم الشهادة.

    • "Password" - اكتب كلمة المرور التي استخدمتها لإنشاء الشهادة.

      وافق على القيم الافتراضية للإعدادات الأخرى في علامة التبويب وحدة الإصغاء، ثم حدد علامة التبويب أهداف الواجهة الخلفية لتكوين بقية قاعدة التوجيه.

    Create new application gateway: listener

  4. في علامة التبويب أهداف الواجهة الخلفية، حدد myBackendPoolلهدف الواجهة الخلفية.

  5. بالنسبة "HTTP setting"، حدد "Add new" لإضافة إعداد HTTP جديد. سيحدد إعداد HTTP سلوك قاعدة التحويل. في نافذة "Add a HTTP setting" التي تفتح، أدخل myHTTPSetting لـ اسم إعداد HTTP. وافق على القيم الافتراضية للإعدادات الأخرى في نافذة "Add a HTTP setting"، ثم حدد "Add" للعودة إلى نافذة "Add a routing rule".

    Screenshot of Adding H T T P setting from the configuration tab of Create new Application Gateway

  6. من نافذة "Add a routing rule"، حدد "Add" لحفظ قاعدة التحويل والعودة إلى علامة التبويب "Configuration".

    Create new application gateway: routing rule

  7. حدد Next: Tags ثم Next: Review + create.

مراجعة + إنشاء علامة التبويب

راجع الإعدادات في علامة التبويب "Review + create"، ثم حدد "Create" لإنشاء الشبكة الظاهرية وعنوان IP العام وبوابة التطبيق. قد يستغرق الأمر عدة دقائق لـ Azure لإنشاء application gateway. انتظر حتى ينتهي التوزيع بنجاح قبل الانتقال إلى القسم التالي.

إضافة أهداف الخلفية

في هذا المثال، ستستخدم الأجهزة الظاهرية كخلفية هدف. يمكنك إمّا استخدام الأجهزة الظاهرية الموجودة وإمّا إنشاء أجهزة جديدة. يمكنك إنشاء جهازين ظاهرين بحيث يتسنى لـ Azure استخدامهما كخوادم خلفية لبوابة التطبيق.

لفعل ذلك، ستقوم بما يلي:

  1. أنشئ جهازين ظاهرين جديدين، myVM وmyVM2، لاستخدامهما كخوادم للواجهة الخلفية.
  2. تثبيت IIS على الأجهزة الظاهرية للتحقق من إنشاء application gateway بنجاح.
  3. أضِف خوادم خلفية إلى التجمع الخلفي.

إنشاء جهاز ظاهري

  1. من قائمة مدخل Microsoft Azure، حدد + Create a resource>Compute>Windows Server 2016 Datacenter، أو ابحث عن Windows Server في مربع البحث المدخل وحدد Windows Server 2016 Datacenter.

  2. حدد إنشاء.

    يمكن لـ Application Gateway توجيه حركة المرور إلى أي نوع من الأجهزة الافتراضية المستخدمة في مجموعة الواجهة الخلفية الخاصة بها. في هذا المثال، يمكنك استخدام Windows Server 2016 Datacenter.

  3. أدخل هذه القيم في علامة التبويب "Basics" لإعدادات الجهاز الظاهري التالية:

    • مجموعة الموارد: حدد "myResourceGroupAG" لاسم مجموعة الموارد.
    • "Virtual machine name": أدخل myVM لاسم الجهاز الظاهري.
    • "Username": أدخل اسماً لاسم مستخدم المسؤول.
    • "Password": عين كلمة مرور لحساب المسؤول.
  4. وافق على الإعدادات الافتراضية الأخرى ثم حدد "Next: Disks".

  5. اقبل الإعدادات الافتراضية لعلامة التبويب "Disks" ثم حدد "Next: Networking".

  6. في علامة التبويب "Networking"، تحقق من تحديد myVNet لـ "Virtual network" وتعيين "Subnet" على myBackendSubnet. اقبل الإعدادات الافتراضية الأخرى ثم حدد "Next: Management".

    يمكن لـ Application Gateway التواصل مع مثيلات خارج الشبكة الظاهرية الموجودة بها، ولكن عليك التأكد من وجود اتصال IP.

  7. في علامة التبويب "Management"، عيّن "Boot diagnostics" على "Disable". اقبل الإعدادات الافتراضية، ثم حدد Review + create.

  8. في علامة التبويب Review + create راجع الإعدادات، وصحح أي أخطاء في التحقق من السلامة، ثم حدد Create.

  9. قم بالانتظار حتى تكتمل عملية التوزيع قبل المتابعة.

ثبِّت IIS للاختبار

في هذا المثال، تقوم بتثبيت IIS على الأجهزة الظاهرية فقط للتحقق من قيام Azure بإنشاء عبّارة التطبيق بنجاح.

  1. افتح Azure PowerShell. للقيام بذلك، حدد "Cloud Shell" من شريط التنقل العلوي مدخل Microsoft Azure ثم حدد "PowerShell" من القائمة المنسدلة.

    Install custom extension

  2. تغيير إعدادات الموقع لبيئتك، ثم تشغيل الأمر التالي لتثبيت IIS على الجهاز الظاهري:

           Set-AzVMExtension `
             -ResourceGroupName myResourceGroupAG `
             -ExtensionName IIS `
             -VMName myVM `
             -Publisher Microsoft.Compute `
             -ExtensionType CustomScriptExtension `
             -TypeHandlerVersion 1.4 `
             -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
             -Location <location>
    
  3. أنشئ جهازاً ظاهرياً ثانياً وثبِّت IIS باتباع الخطوات التي أكملتها مسبقاً. استخدم myVM2 لاسم الجهاز الظاهري ولإعداد VMName للأمر cmdlet "Set -AzVMExtension".

إضافة خوادم الواجهة الخلفية إلى تجمع الواجهة الخلفية

  1. حدد "All resources"، ثم حدد myAppGateway.

  2. حدد تجمعات الواجهة الخلفية من القائمة اليمنى.

  3. حدد «myBackendPool».

  4. من "Target type"، حدد "Virtual machine" من القائمة المنسدلة.

  5. ضمن Target، حدد واجهة الشبكة ضمن myVM من القائمة المنسدلة.

  6. كرر العملية لإضافة واجهة شبكة لـ myVM2.

    Add backend servers

  7. حدد حفظ.

  8. انتظر حتى يكتمل التوزيع قبل المتابعة إلى الخطوة التالية.

اختبار بوابة التطبيق

  1. حدد "All resources"، ثم حدد myAGPublicIPAddress.

    Record application gateway public IP address

  2. في شريط العناوين في المستعرض، اكتب https://< عنوان> ip الخاص ببوابة التطبيق.

    لقبول تحذير الأمان في حال استخدمت شهادة موقعة ذاتياً، حدد "Details" (أو "Advanced" من Chrome)، ثم اتجه إلى صفحة الويب:

    Secure warning

    ثم يتم عرض موقع IIS الآمن الخاص بك كما في المثال التالي:

    Test base URL in application gateway

تنظيف الموارد

عند انعدام الحاجة إلى مجموعة الموارد، احذفها واحذف جميع الموارد ذات الصلة. للقيام بذلك، حدد مجموعة الموارد، ثم اختر "Delete resource group".

الخطوات التالية

في هذا البرنامج التعليمي، سوف تتعلّم:

  • إنشاء شهادة موقعة ذاتيا
  • إنشاء بوابة تطبيق باستخدام الشهادة

لمعرفة المزيد حول دعم TLS لبوابة التطبيق، راجع TLS من طرف إلى طرف باستخدام بوابة التطبيق ونهج TLS لبوابة التطبيق.

لمعرفة كيفية إنشاء بوابة تطبيق وتكوينها لاستضافة مواقع ويب متعددة باستخدام مدخل Microsoft Azure، تقدم إلى البرنامج التعليمي التالي.