تكوين TLS لتطبيق في Azure

هام

تم الآن إهمال الخدمات السحابية (الكلاسيكية) لجميع العملاء اعتبارا من 1 سبتمبر 2024. سيتم إيقاف أي عمليات نشر قيد التشغيل الحالية وإيقاف تشغيلها بواسطة Microsoft وسيتم فقدان البيانات بشكل دائم بدءا من أكتوبر 2024. ينبغي أن تستخدم عمليات النشر الجديدة نموذج النشر الجديد القائم على Azure Resource Manager ‏‏Azure Cloud Services (الدعم الموسع).

بروتوكول أمان طبقة النقل (TLS)، المعروف سابقاً باسم التشفير كطبقة مأخذ التوصيل الآمنة (SSL)، هو الأسلوب الأكثر استخداماً لتأمين البيانات المرسلة عبر الإنترنت. تتناول هذه المهمة الشائعة كيفية تحديد نقطة نهاية HTTPS لدور ويب وكيفية تحميل شهادة TLS/SSL لتأمين التطبيق الخاص بك.

إشعار

تنطبق الإجراءات في هذه المهمة على خدمات Azure السحابية؛ لخدمات التطبيقات، راجع هذا.

تستخدم هذه المهمة توزيع الإنتاج. يتم توفير معلومات حول استخدام نشر مرحلي في نهاية هذه المقالة.

اقرأ كيفية إنشاء خدمة سحابة Azure (كلاسيكية) ونشرها أولا إذا لم تكن قد أنشأت خدمة سحابية بعد.

الخطوة 1: الحصول على شهادة TLS/SSL

لتكوين TLS لتطبيق ما، تحتاج أولا إلى الحصول على شهادة TLS/SSL موقعة من قبل مرجع مصدق (CA)، وهو شريك موثوق يصدر شهادات لهذا الغرض. إذا لم يكن لديك واحد بالفعل، فأنت بحاجة إلى الحصول على واحدة من شركة تبيع شهادات TLS/SSL.

يجب أن تفي الشهادة بالمتطلبات التالية لشهادات TLS/SSL في Azure:

  • يجب أن تحتوي الشهادة على مفتاح عمومي.
  • يجب إنشاء الشهادة لتبادل المفاتيح، قابلة للتصدير إلى ملف Exchange معلومات شخصية (.pfx).
  • يجب أن يتطابق اسم موضوع الشهادة مع المجال المستخدم للوصول إلى الخدمة السحابية. لا يمكنك الحصول على شهادة TLS/SSL من مرجع مصدق (CA) لمجال cloudapp.net. يجب الحصول على اسم مجال مخصص لاستخدامه عند الوصول إلى الخدمة. عند طلب شهادة من CA، يجب مطابقة اسم موضوع الشهادة مع اسم مجال نظام المجموعة الذي تستخدمه لنظام المجموعة الخاص بك. على سبيل المثال، إذا كان اسم المجال المخصص contoso.com فسيُطلَب منك شهادة من المرجع المصدق لـ *.contoso.com أو www.contoso.com.
  • يجب أن تستخدم الشهادة تشفير 2048 بت كحد أدنى.

لأغراض الاختبار، يمكنك "إنشاء" شهادة موقعة ذاتياً واستخدامها. لا تتم مصادقة الشهادة الموقعة ذاتيا من خلال المرجع المصدق ويمكنها استخدام مجال cloudapp.net كعنون URL لموقع الويب. على سبيل المثال، تستخدم المهمة التالية شهادة موقعة ذاتياً حيث يكون الاسم الشائع (CN) المستخدم في الشهادة هو sslexample.cloudapp.net.

بعد ذلك، يجب تضمين معلومات حول الشهادة في ملفات تكوين الخدمة وتعريف الخدمة.

الخطوة 2: تعديل تعريف الخدمة وملفات التكوين

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

  1. في بيئة التطوير الخاصة بك، افتح ملف تعريف الخدمة (CSDEF)، ثم أضف قسم "الشهادات" ضمن المقطع WebRole، وأضف المعلومات التالية حول الشهادة (والشهادات المتوسطة):

    <WebRole name="CertificateTesting" vmsize="Small">
    ...
        <Certificates>
            <Certificate name="SampleCertificate"
                        storeLocation="LocalMachine"
                        storeName="My"
                        permissionLevel="limitedOrElevated" />
            <!-- IMPORTANT! Unless your certificate is either
            self-signed or signed directly by the CA root, you
            must include all the intermediate certificates
            here. You must list them here, even if they are
            not bound to any endpoints. Failing to list any of
            the intermediate certificates may cause hard-to-reproduce
            interoperability problems on some clients.-->
            <Certificate name="CAForSampleCertificate"
                        storeLocation="LocalMachine"
                        storeName="CA"
                        permissionLevel="limitedOrElevated" />
        </Certificates>
    ...
    </WebRole>
    

    يحدد قسم الشهادات اسم شهادتنا وموقعها واسم المتجر الذي توجد فيه.

    يمكن تعيين الأذونات permissionLevel (السمة) إلى إحدى القيم التالية:

    قيمة الإذن ‏‏الوصف
    limitedOrElevated (افتراضي) يمكن الوصول إلى جميع عمليات الدور المفتاح الخاص.
    مرتفعة يمكن للعمليات المرتفعة فقط الوصول إلى المفتاح الخاص.
  2. في ملف تعريف الخدمة، أضف عنصر InputEndpoint ضمن المقطع "نقاط النهاية" لتمكين HTTPS:

    <WebRole name="CertificateTesting" vmsize="Small">
    ...
        <Endpoints>
            <InputEndpoint name="HttpsIn" protocol="https" port="443"
                certificate="SampleCertificate" />
        </Endpoints>
    ...
    </WebRole>
    
  3. في ملف تعريف الخدمة الخاص بك، أضف عنصر "ربط البيانات" ضمن المقطع "المواقع". يضيف هذا العنصر ربط HTTPS لتعيين نقطة النهاية إلى موقعك:

    <WebRole name="CertificateTesting" vmsize="Small">
    ...
        <Sites>
            <Site name="Web">
                <Bindings>
                    <Binding name="HttpsIn" endpointName="HttpsIn" />
                </Bindings>
            </Site>
        </Sites>
    ...
    </WebRole>
    

    اكتملت جميع التغييرات المطلوبة على ملف تعريف الخدمة، ولكنك لا تزال بحاجة إلى إضافة معلومات الشهادة إلى ملف تكوين الخدمة.

  4. في ملف تكوين الخدمة (CSCFG)، ServiceConfiguration.Cloud.cscfg، قم بإضافة قيمة "شهادات" مع قيمة الشهادة الخاصة بك. نموذج التعليمات البرمجية التالي يوفر تفاصيل المقطع "شهادات" باستثناء قيمة بصمة الإبهام.

    <Role name="Deployment">
    ...
        <Certificates>
            <Certificate name="SampleCertificate"
                thumbprint="9427befa18ec6865a9ebdc79d4c38de50e6316ff"
                thumbprintAlgorithm="sha1" />
            <Certificate name="CAForSampleCertificate"
                thumbprint="79d4c38de50e6316ff9427befa18ec6865a9ebdc"
                thumbprintAlgorithm="sha1" />
        </Certificates>
    ...
    </Role>
    

(يستخدم هذا المثال sha1 لخوارزمية بصمة الإبهام. حدد القيمة المناسبة لخوارزمية بصمة الإبهام لشهادتك.)

الآن بعد أن قمت بتحديث تعريف الخدمة وملفات تكوين الخدمة، قم بحزم النشر الخاص بك للتحميل إلى Azure. إذا كنت تستخدم cspack، فلا تستخدم العلامة /generateConfigurationFile ، حيث يؤدي ذلك إلى الكتابة فوق معلومات الشهادة التي قمت بإدراجها.

الخطوة 3: تحميل شهادة

الاتصال إلى مدخل Azure و...

  1. في قسم "كل الموارد" في البوابة الإلكترونية، حدد الخدمة السحابية.

    نشر خدمتك السحابية

  2. حدد الشهادات.

    انقر فوق أيقونة الشهادات

  3. حدد Upload في أعلى منطقة الشهادات.

    انقر فوق عنصر القائمة تحميل

  4. قم بتوفير ملف، كلمة المرور، ثم حدد تحميل في أسفل منطقة إدخال البيانات.

الخطوة 4: الاتصال إلى مثيل الدور باستخدام HTTPS

الآن بعد أن تم النشر والتشغيل في Azure، يمكنك الاتصال به باستخدام HTTPS.

  1. حدد عنوان URL للموقع لفتح مستعرض الويب.

    انقر فوق عنوان URL للموقع

  2. في مستعرض ويب، قم بتعديل الارتباط لاستخدام https بدلاً من http،ثم قم بزيارة الصفحة.

    إشعار

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

    معاينة الموقع

    تلميح

    إذا كنت تريد استخدام TLS للتوزيع بالتقسيم المرحلي بدلاً من توزيع الإنتاج، ستحتاج أولاً إلى تحديد عنوان URL المستخدم لتوزيع التقسيم المرحلي. بمجرد نشر خدمة مجموعة النظراء الخاصة بك، يتم تحديد URL إلى بيئة التجهيز بواسطة GUID "معرف التوزيع" في هذا التنسيق: https://deployment-id.cloudapp.net/

    إنشاء شهادة مع الاسم الشائع (CN) يساوي URL المستندة إلى GUID (على سبيل المثال، 328187776e774ceda8fc57609d404462.cloudapp.net). استخدم المدخل لإضافة الشهادة إلى الخدمة السحابية المرحلية. ثم أضِف معلومات الشهادة إلى ملفات CSDEF وCSCFG، أعد حزم التطبيق الخاص بك، وتحديث التوزيع بالتقسيم المرحلي لاستخدام الحزمة الجديدة.

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