تفعيل HTTPS على خوادمك

Chris Palmer
Chris Palmer

تقدم هذه الصفحة إرشادات حول إعداد HTTPS على خوادمك، بما في ذلك الخطوات التالية:

  • إنشاء زوج من المفاتيح العامة/الخاصة بخوارزمية RSA بحجم 2048 بت
  • إنشاء طلب توقيع شهادة (CSR) يؤدي إلى تضمين مفتاحك العام
  • ومشاركة ممثل خدمة العملاء (CSR) مع هيئة إصدار الشهادات (CA) للحصول على بيان أو سلسلة شهادات.
  • تثبيت شهادتك النهائية في مكان لا يمكن الوصول إليه عبر الويب مثل /etc/ssl (نظاما التشغيل Linux وUnix) أو أي مكان يتطلبه خادم IIS (نظام التشغيل Windows).

إنشاء مفاتيح وطلبات توقيع الشهادات

يستخدم هذا القسم برنامج سطر أوامر opensl، والذي يأتي مع معظم أنظمة Linux وBSD وMac OS X لإنشاء مفاتيح خاصة وعامة وإشعار CSR.

إنشاء مفتاحَي تشفير عام/خاص

للبدء، عليك إنشاء مفتاحَي تشفير RSA بحجم 2,048 بت. يمكن كسر المفتاح الأقصر بواسطة بهجمات التخمين الغاشمة، والمفاتيح الأطول تستخدم موارد غير ضرورية.

استخدِم الأمر التالي لإنشاء مفتاحَي تشفير RSA:

openssl genrsa -out www.example.com.key 2048

ينتج عن ذلك الناتج التالي:

Generating RSA private key, 2048 bit long modulus
.+++
.......................................................................................+++
e is 65537 (0x10001)

إنشاء طلب توقيع شهادة

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

تشغيل الأمر التالي:

openssl req -new -sha256 -key www.example.com.key -out www.example.com.csr

وتُخرج ما يلي:

You are about to be asked to enter information that will be incorporated
into your certificate request

What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CA
State or Province Name (full name) [Some-State]:California
Locality Name (for example, city) []:Mountain View
Organization Name (for example, company) [Internet Widgits Pty Ltd]:Example, Inc.
Organizational Unit Name (for example, section) []:Webmaster Help Center Example
Team
Common Name (e.g. server FQDN or YOUR name) []:www.example.com
Email Address []:webmaster@example.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

للتأكد من صلاحية طلب توقيع الشهادة، شغِّل الأمر التالي:

openssl req -text -in www.example.com.csr -noout

يجب أن يبدو الرد على النحو التالي:

Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=CA, ST=California, L=Mountain View, O=Google, Inc.,
OU=Webmaster Help Center Example Team,
CN=www.example.com/emailAddress=webmaster@example.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:ad:fc:58:e0:da:f2:0b:73:51:93:29:a5:d3:9e:
                    f8:f1:14:13:64:cc:e0:bc:be:26:5d:04:e1:58:dc:
                    ...
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha256WithRSAEncryption
         5f:05:f3:71:d5:f7:b7:b6:dc:17:cc:88:03:b8:87:29:f6:87:
         2f:7f:00:49:08:0a:20:41:0b:70:03:04:7d:94:af:69:3d:f4:
         ...

إرسال طلب توقيع الشهادة إلى هيئة إصدار شهادات

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

أرسل ممثل خدمة العملاء إلى كاليفورنيا واتّبع تعليماته لاستلام النموذج النهائي شهادة أو سلسلة شهادات.

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

هناك أيضًا خيارات لتعيين مفتاحك بأكثر من اسم نظام أسماء نطاقات واحد، بما في ذلك عدة أسماء مميزة (مثل كل example.com، أو www.example.com، أو example.net، وwww.example.net) أو "حرف البدل" أسماء مثل *.example.com.

انسخ الشهادات إلى جميع خوادم الواجهة الأمامية في ملف لا يمكن الوصول إليه عبر الويب مثل /etc/ssl (Linux وUnix) أو في أي مكان يتطلب بروتوكول IIS (نظام التشغيل Windows) معهم.

تفعيل بروتوكول HTTPS على خوادمك

يُعد تمكين HTTPS على خوادمك خطوة مهمة في توفير الأمان لصفحات الويب الخاصة بك.

  • استخدام أداة إعداد خادم Mozilla لإعداد خادمك لبروتوكول HTTPS والدعم.
  • اختبار موقعك الإلكتروني بانتظام باستخدام أداة Qualys اختبار خادم طبقة المقابس الآمنة وضمانه تحصل على A أو A+ على الأقل.

في هذه المرحلة، يجب عليك اتخاذ قرار مهم بشأن العمليات. اختَر أحد الخيارات التالية: التالي:

  • تخصيص عنوان IP مميز لكل اسم مضيف يعرضه خادم الويب للمحتوى منهم.
  • استخدام الاستضافة الافتراضية المستندة إلى الاسم.

إذا كنت تستخدم عناوين IP مميزة لكل اسم مضيف، يمكنك دعم لكل من HTTP وHTTPS لجميع البرامج. مع ذلك، تستخدم معظم مشغّلي المواقع الإلكترونية بيانات الاستضافة الافتراضية للحفاظ على عناوين IP ولأنها أكثر ملاءمة عامة.

إذا لم تكن خدمة HTTPS متوفرة على خوادمك، فعِّلها الآن. (بدون إعادة توجيه HTTP إلى HTTPS. الاطّلاع على مقالة إعادة توجيه HTTP إلى HTTPS للحصول على مزيد من المعلومات). اضبط خادم الويب لاستخدام الشهادات التي شراء وتثبيت. قد تجد إعدادات Mozilla منشئ مفيدة.

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

والآن، وبشكل منتظم طوال فترة بقاء موقعك، تحقق من HTTPS باستخدام Qualys اختبار خادم طبقة المقابس الآمنة (SSL) يجب أن يحصل موقعك الإلكتروني على التقييم A أو A+. التعامل مع أي شيء يتسبب في انخفاض الدرجة على أنه خطأ والبقاء يقظًا، لأن الهجمات الجديدة ضد الخوارزميات والبروتوكولات قيد التطوير دائمًا.

جعل عناوين URL داخل الموقع نسبية

بما أنك تعرض موقعك الإلكتروني الآن على كلٍّ من HTTP وHTTPS، يجب أن تعمل الأمور بسلاسة قدر الإمكان بغض النظر عن البروتوكول. هناك عامل مهم وهو استخدام عناوين URL ذات صلة بروابط بين المواقع الإلكترونية.

تأكد من أن عناوين URL داخل الموقع وعناوين URL الخارجية لا تعتمد على بروتوكول معين. استخدِم المسارات النسبية أو تجنَّب استخدام البروتوكول كما في //example.com/something.js.

عرض صفحة تحتوي على موارد HTTP باستخدام HTTPS إلى حدوث مشاكل. عندما يواجه متصفح صفحة آمنة أخرى تستخدم موارد غير آمنة، فإنها تحذّر المستخدمين من أن الصفحة ليس آمنًا تمامًا، وترفض بعض المتصفحات تحميل أو تنفيذ بروتوكول HTTP والموارد، التي تقسم الصفحة. ومع ذلك، يمكنك تضمين صفحات HTTPS بأمان الموارد في صفحة HTTP. لمزيد من الإرشادات حول حل هذه المشاكل، راجع إصلاح المحتوى المختلط:

قد يؤدي اتباع روابط تستند إلى HTTP إلى صفحات أخرى على موقعك أيضًا إلى خفض مستوى تجربة المستخدم من HTTPS إلى HTTP لإصلاح هذه المشكلة، اجعل عناوين URL داخل الموقع نسبية قدر الإمكان، من خلال جعلها إما مرتبطة بالبروتوكول (بدون البروتوكول، بدءًا من //example.com) أو الخاص بالمضيف (بدءًا من المسار، مثل /jquery.js).

الإجراءات الموصى بها
<h1>Welcome To Example.com</h1>
<script src="/jquery.js"></script>
<link rel="stylesheet" href="/assets/style.css"/>
<img src="/images/logo.png"/>;
<p>A <a href="/2014/12/24">new post on cats!</a></p>
استخدام عناوين URL نسبية داخل الموقع.
الإجراءات الموصى بها
<h1>Welcome To Example.com</h1>
<script src="//example.com/jquery.js"></script>
<link rel="stylesheet" href="//assets.example.com/style.css"/>
<img src="//img.example.com/logo.png"/>;
<p>A <a href="//example.com/2014/12/24/">new post on cats!</a></p>
أو استخدام عناوين URL على الموقع الإلكتروني ذات صلة بالبروتوكول.
الإجراءات الموصى بها
<h1>Welcome To Example.com</h1>
<script src="/jquery.js"></script>
<link rel="stylesheet" href="/assets/style.css"/>
<img src="/images/logo.png"/>;
<p>A <a href="/2014/12/24">new post on cats!</a></p>
<p>Check out this <a href="https://foo.com/"><b>other cool site.</b></a></p>
استخدِم عناوين URL عبر HTTPS للروابط المؤدية إلى مواقع إلكترونية أخرى متى أمكن ذلك.

عدِّل روابطك باستخدام نص برمجي، وليس يدويًّا، لتجنُّب الوقوع في أخطاء. إذا كان محتوى الموقع في قاعدة بيانات، فاختبر النص على نسخة تطوير قاعدة البيانات. إذا كان محتوى موقعك الإلكتروني يتألف من ملفات بسيطة فقط، يمكنك اختبار النص البرمجي. على نسخة تطويرية من الملفات. دفع التغييرات إلى الإنتاج فقط بعد اجتياز التغييرات تأكيد الجودة، كالمعتاد. يمكنك استخدام نص "برام فان دام" أو ما شابه لاكتشاف المحتوى المختلَط في موقعك الإلكتروني

عند إنشاء روابط تؤدي إلى مواقع أخرى (بدلاً من تضمين مصادر منها)، لا تغير البروتوكول. ولا يمكنك التحكّم في كيفية عمل هذه المواقع الإلكترونية.

لتسهيل عملية النقل للمواقع الإلكترونية الكبيرة، ننصح باستخدام عناوين URL المتعلّقة بالبروتوكول. إذا لم تكن متأكدًا من إمكانية نشر بروتوكول HTTPS بشكل كامل، سيفرض ذلك على موقعك الإلكتروني استخدام HTTPS لجميع الموارد الفرعية يمكن أن يأتي بنتائج عكسية. من المحتمل أن تكون هناك فترة الوقت الذي أصبح فيه بروتوكول HTTPS جديدًا وغريبًا بالنسبة إليك، ويجب أن يبقى موقع HTTP يعمل كما كان في أي وقت مضى. بمرور الوقت، ستُكمل عملية نقل البيانات وتقفل في بروتوكول HTTPS. (اطّلِع على القسمَين التاليَين).

وإذا كان موقعك يعتمد على نصوص برمجية أو صور أو موارد أخرى يتم عرضها من مثل CDN أو jquery.com، فلديك خياران:

  • استخدِم عناوين URL ذات صلة بالبروتوكول لهذه الموارد. وإذا لم تكن الجهة الخارجية تعرض HTTPS، تطلب منهم ذلك. يحدث ذلك بالفعل، بما في ذلك jquery.com.
  • عرض الموارد من خادم تتحكم فيه، ويوفر كلاً من HTTP وHTTPS. غالبًا ما تكون هذه فكرة جيدة على أي حال، لأنه بعد ذلك يكون لديك التحكم في مظهر موقعك وأدائه وأمانه، ولا تدفع الوثوق في جهة خارجية للحفاظ على أمان موقعك.

إعادة توجيه HTTP إلى HTTPS

لتوجيه محركات البحث لاستخدام بروتوكول HTTPS للوصول إلى موقعك، ضع للرابط الأساسي في صفحة عنوان كل صفحة باستخدام علامات <link rel="canonical" href="https://…"/>.

تفعيل "الأمان المشدَّد لنقل البيانات" وملفات تعريف الارتباط الآمنة

في هذه المرحلة، تكون جاهزًا "لتأمين" استخدام HTTPS:

  • استخدام الأمان المشدَّد لنقل البيانات باستخدام بروتوكول HTTP (HSTS) لتجنُّب تكلفة الإجراء 301 إعادة التوجيه.
  • ضبط "علامة الأمان" على ملفات تعريف الارتباط دائمًا

أولاً، عليك استخدام الأمان المشدَّد لنقل البيانات ليخبر العملاء أنه ينبغي لهم الاتصال دائمًا بخادمك باستخدام HTTPS، وحتى عند متابعة مرجع http://. يؤدي هذا إلى هزيمة هجمات مثل إزالة طبقة المقابس الآمنة، وتتجنّب تكلفة رحلات الذهاب والعودة لـ 301 redirect التي فعَّلناها في إعادة توجيه HTTP إلى HTTPS

لتفعيل HSTS، يجب ضبط العنوان Strict-Transport-Security. صفحة HSTS في OWASP تتضمّن روابط إلى التعليمات لأنواع مختلفة من برامج الخادم.

توفر معظم خوادم الويب قدرة مماثلة لإضافة رؤوس مخصصة.

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

لتجنُّب حدوث ذلك، عليك تغيير تطبيق الويب لضبط علامة "آمن" دائمًا على ملفات تعريف الارتباط عليه. مجموعات. توضّح صفحة OWASP هذه كيفية ضبط علامة "الأمان" في العديد من أطر عمل التطبيقات. يتضمّن كل إطار عمل تطبيقي طريقة لوضع العلامة.

توفر معظم خوادم الويب ميزة إعادة توجيه بسيطة. استخدام "301 (Moved Permanently)" لإعلام محركات البحث والمتصفحات بأنّ نسخة HTTPS هي النسخة الأساسية وإعادة توجيه المستخدمين إلى نسخة HTTPS من موقعك الإلكتروني من HTTP.

ترتيب البحث

يستخدم محرك بحث Google HTTPS بجودة بحث إيجابية . وتنشر Google أيضًا دليلاً حول كيفية نقل أو نقل أو نقل موقعك الإلكتروني مع الحفاظ على ترتيبه في البحث. تنشر Bing أيضًا إرشادات لمشرفي المواقع.

الأداء

عندما يتم ضبط طبقات المحتوى والتطبيق بشكل جيد (راجع "ستيف سودرز" للكتب للحصول على النصائح)، أما بالنسبة إلى بروتوكول أمان طبقة النقل (TLS) المتبقي تكون المخاوف المتعلقة بالأداء صغيرة بشكل عام بالنسبة إلى التكلفة الإجمالية التطبيق. ويمكنك أيضًا خفض هذه التكاليف وإهلاكها. للحصول على نصائح حول بروتوكول أمان طبقة النقل (TLS) التحسين، راجِع شبكات المتصفِّحات ذات الأداء العالي من خلال إيليا غريغوريك، وإيفان ريستيك OpenSSL Cookbook وكذلك طبقة المقابس الآمنة (SSL) وبروتوكول أمان طبقة النقل (TLS) ضد الرصاص

وفي بعض الحالات، يمكن لبروتوكول أمان طبقة النقل (TLS) تحسين الأداء، ويرجع ذلك غالبًا إلى اتخاذ يمكن استخدام HTTP/2. لمزيد من المعلومات، يمكنك الرجوع إلى قصة كريس بالمر عن أداء HTTPS وHTTP/2 على مؤتمر Chrome Dev Summit لعام 2014

عناوين المُحيل

عندما يتتبّع المستخدمون روابط من موقعك الإلكتروني الذي يستخدم HTTPS إلى مواقع إلكترونية أخرى تستخدم بروتوكول HTTP، يتم استخدام برامج وكيل المستخدم. لا ترسل رأس المُحيل. إذا كانت هذه مشكلة، فهناك عدة طرق حلها:

  • ويجب نقل المواقع الإلكترونية الأخرى إلى بروتوكول HTTPS. في حال أكملت المواقع الإلكترونية المُحيلة قسم تمكين HTTPS على خوادمك من هذا الدليل، يمكنك تغيير الروابط في موقعك الإلكتروني إلى روابطه من http:// إلى https:// أو استخدام روابط متعلقة بالبروتوكول.
  • وللتغلب على مجموعة متنوعة من المشكلات المتعلقة بعناوين الصفحة المُحيلة، استخدم الطريقة الجديدة معيار سياسة المُحيل.

أرباح الإعلانات

يريد مشغّلو المواقع الإلكترونية الذين يحقّقون الربح من مواقعهم الإلكترونية من خلال عرض الإعلانات التأكّد من أنّهم الانتقال إلى HTTPS لا يقلل من مرات ظهور الإعلانات. ومع ذلك، بسبب الاختلاط ثمة مخاوف متعلقة بأمان المحتوى، لا يعمل بروتوكول HTTP <iframe> على صفحة HTTPS. لا يمكن لمشغّلي المواقع الإلكترونية نقل بياناتهم إلى بروتوكول HTTPS إلى أن ينشر المعلنون عبر بروتوكول HTTPS. بدون خسارة أرباح الإعلانات، ولكن إلى أن ينتقل مشغلو المواقع إلى HTTPS، يتوفّر لدى المعلنين القليل من الدافع لنشر بروتوكول HTTPS

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