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

هام

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

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

ملاحظة

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

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

اقرأ هذا أولًا إذا لم تكن قد أنشأت خدمة سحابية بعد.

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

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

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

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

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

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

الخطوة 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: تحميل شهادة

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

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

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

  2. انقر فوق شهادات.

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

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

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

  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.cloudappNET.). استخدم المدخل لإضافة الشهادة إلى الخدمة السحابية المرحلية. ثم أضِف معلومات الشهادة إلى ملفات CSDEF وCSCFG، أعد حزم التطبيق الخاص بك، وتحديث التوزيع بالتقسيم المرحلي لاستخدام الحزمة الجديدة.

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