الشهادات والإصدار الثاني من App Service Environment

هام

تتناول هذه المقالة الإصدار الثاني من App Service Environment، والذي يتم استخدامه مع خطط خدمة التطبيقات المعزولة. سيتم إيقاف الإصدارين 1 و2 من App Service Environment في 31 أغسطس 2024. يوجد إصدار جديد من App Service Environment يسهل استخدامه ويعمل ببنية أساسية أكثر قوة. لمعرفة المزيد عن الإصدار الجديد، ابدأ بمقدمة لبيئة App Service. في حالة كنت تستخدم App Service Environment v2 حاليًا، فيرجى اتباع الخطوات الواردة في هذه المقالة للترحيل إلى الإصدار الجديد.

بعد 31 أغسطس 2024، سيبدأ إيقاف تشغيل أجهزة App Service Environment v1 وv2، وقد يؤثر ذلك على توفر التطبيقات والبيانات وأدائها. لن تنطبق اتفاقية مستوى الخدمة (SLA) وأرصدة الخدمة على أحمال عمل App Service Environment v1 وv2 التي تستمر في الإنتاج بعد 31 أغسطس 2024.

يجب إكمال الترحيل إلى App Service Environment v3 قبل 31 أغسطس 2024 أو قد يتم حذف التطبيقات والموارد. سنحاول الترحيل التلقائي لأي بيئة خدمة تطبيقات متبقية v1 وv2 على أساس أفضل جهد باستخدام ميزة الترحيل الموضعي، ولكن Microsoft لا تقدم أي مطالبة أو ضمانات حول توفر التطبيق بعد الترحيل التلقائي. قد تحتاج إلى إجراء تكوين يدوي لإكمال الترحيل وتحسين خيار SKU لخطة App Service لتلبية احتياجاتك. إذا لم يكن الترحيل التلقائي ممكنا، حذف الموارد وبيانات التطبيق المقترنة. ونحثك بشدة على التصرف الآن لتجنب أي من هذه السيناريوهات المتطرفة.

للحصول على أحدث المعلومات حول إيقاف App Service Environment v1/v2، راجع تحديث إيقاف App Service Environment v1 وv2.

The App Service Environment(ASE) هو توزيع لـ Azure App Service الذي يعمل فيAzure Virtual Network(VNet) الخاصة بك. يمكن توزيعه عن طريق استخدام نقطة نهاية تطبيق يمكن الوصول إليها عبر الإنترنت أو نقطة نهاية تطبيق موجودة في شبكتك الظاهرية. إذا قمت بنشر ASE باستخدام نقطة نهاية يمكن الوصول إليها عبر الإنترنت، فإن هذا النشر يسمى External ASE. إذا قمت بنشر ASE باستخدام نهاية في الشبكة الظاهرية الخاصة بك، فإن هذا النشر يسمى ILB ASE. يمكنك معرفة المزيد حول ILB ASE من مستند إنشاء واستخدام ILB ASE

ASE هو نظام مستأجر واحد. نظرًا لأنه مستأجر واحد، توجد بعض الميزات التي تتوفر فقط مع ASE ولا تتوفر في App Service متعددة المستأجرين.

شهادات ILB ASE

إن كنت تستخدم External ASE، فسيتم الوصول إلى تطبيقاتك في <appname>.<asename>.p.azurewebsites.net. افتراضيًا، يتم إنشاء جميع وحدات ASE، حتى وحدات ILB ASE، مع الشهادات التي تتبع ذلك التنسيق. عندما يكون لديك ILB ASE، يتم الوصول إلى التطبيقات استنادًا إلى اسم المجال الذي تحدده أثناء إنشاء ILB ASE. بالنسبة إلى التطبيقات التي تدعم TLS، تحتاج إلى تحميل الشهادات. احصل على شهادة TLS/SSL صالحة باستخدام المراجع المصدقة الداخلية أو شراء شهادة من مصدر خارجي أو استخدام شهادة موقعة ذاتيًا.

يوجد خياران لتكوين الشهادات باستخدام ILB ASE. يمكنك تعيين شهادة حرف البدل الافتراضية لـ ILB ASE أو تعيين الشهادات على تطبيقات الويب الفردية في ASE. بغض النظر عن الاختيار الذي تقوم به، يجب تكوين سمات الشهادة التالية بطريقة صحيحة:

  • الموضوع: يجب تعيين هذه السمة إلى *. [your-root-domain-here] لشهادة ILB ASE لحرف البدل. في حالة إنشاء الشهادة لتطبيقك، فيجب أن تكون [appname]. [your-root-domain-here]
  • اسم الموضوع البديل: يجب أن تتضمن تلك السمة كلًا من *.[your-root-domain-here] و *.scm.[your-root-domain-here] لشهادة ILB ASE لحرف البدل. في حالة إنشاء الشهادة لتطبيقك، فيجب أن تكون [appname]. [your-root-domain-here] و[appname].scm. [your-root-domain-here].

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

تحميل الشهادة إلى ILB ASE

بعد إنشاء ILB ASE في المدخل، يجب تعيين الشهادة لـ ILB ASE. حتى تعيين الشهادة، ستعرض ASE شعارًا بأنه لم يتم تعيين الشهادة.

يجب أن تكون الشهادة التي تقوم بتحميلها ملف .pfx file. بعد ما يتم تحميل الشهادة، هناك تأخير زمني لمدة 20 دقيقة تقريبًا قبل استخدام الشهادة.

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

إن كنت ترغب في إنشاء شهادة موقعة ذاتيًا بسرعة للاختبار، يمكنك استخدام البت التالي من PowerShell:

$certificate = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname "*.internal.contoso.com","*.scm.internal.contoso.com"

$certThumbprint = "cert:\localMachine\my\" + $certificate.Thumbprint
$password = ConvertTo-SecureString -String "CHANGETHISPASSWORD" -Force -AsPlainText

$fileName = "exportedcert.pfx"
Export-PfxCertificate -cert $certThumbprint -FilePath $fileName -Password $password

عند إنشاء شهادة موقعة ذاتيًا، ستحتاج إلى التأكد من أن اسم الموضوع لديه تنسيق CN={ASE_NAME_HERE}_InternalLoadBalancingASE.

شهادات التطبيق

يمكن للتطبيقات المستضافة في ASE استخدام ميزات الشهادة التي تركز على التطبيق والتي تتوفر في App Service متعدد المستأجرين. تشمل تلك الميزات ما يلي:

  • شهادات SNI
  • SSL المستند إلى IP، وهو مدعوم فقط بـ External ASE. لا يدعم ILB ASE SSL المستند إلى IP.
  • شهادات KeyVault المستضافة

إرشادات تحميل تلك الشهادات تتوفر في إضافة شهادة TLS/SSL في Azure App Service. إذا كنت ببساطة تكون الشهادات لمطابقة اسم مجال مخصص قمت بتعيينه لتطبيق الويب الخاص بك، فستكفي هذه الإرشادات. إن كنت تقوم بتحميل الشهادة لتطبيق ويب ILB ASE باسم المجال الافتراضي، فحدد موقع scm في SAN للشهادة كما هو ملاحظ سابقًا.

TLS settings

يمكنك تكوين إعداد TLS على مستوى التطبيق.

شهادة العميل الخاصة

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

لتحميل الشهادة إلى التطبيق الخاص بك في ASE:

  1. إنشاء .cer file لشهادتك.

  2. انتقل إلى التطبيق الذي يحتاج إلى الشهادة في مدخل Azure

  3. انتقل إلى إعدادات SSL في التطبيق. انقر فوق Upload Certificate. حدّد عام. حدد Local Machine. أدخل اسمًا. استعرض وحدد ملف .cer الخاص بك. حدد "upload".

  4. نسخ بصمة الإبهام.

  5. انتقل إلى Application Settings. أنشئApp Setting WEBSITE_LOAD_ROOT_CERTIFICATES مع بصمة الإبهام كقيمة. إذا كان لديك شهادات متعددة، فيمكنك وضعها في نفس الإعداد مفصولة بفواصل وبدون مسافة بيضاء مثل

    84EC242A4EC7957817B8E48913E50953552DAFA6,6A5C65DC9247F762FE17BF8D4906E04FE6B31819

ستتوفر الشهادة من جميع التطبيقات في نفس خطة خدمة التطبيق مثل التطبيق، الذي قام بتكوين هذا الإعداد. إن كنت بحاجة إلى توفيرها للتطبيقات في خطة App Service مختلفة، فستحتاج إلى تكرار عملية إعداد التطبيق في تطبيق في خطة App Service هذه. للتحقق من تعيين الشهادة، انتقل إلى وحدة تحكم Kudu وأصدر الأمر التالي في وحدة تحكم تتبع أخطاء PowerShell:

dir cert:\localmachine\root

لإجراء الاختبار، يمكنك إنشاء شهادة موقعة ذاتيًا وإنشاء ملف .cer باستخدام PowerShell التالي:

$certificate = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname "*.internal.contoso.com","*.scm.internal.contoso.com"

$certThumbprint = "cert:\localMachine\my\" + $certificate.Thumbprint
$password = ConvertTo-SecureString -String "CHANGETHISPASSWORD" -Force -AsPlainText

$fileName = "exportedcert.cer"
export-certificate -Cert $certThumbprint -FilePath $fileName -Type CERT