bg-tutorials

كيفية تثبيت شهادة SSL على Pound

يوضح لك هذا الدليل كيفية تثبيت شهادة SSL/TLS على Pound، الوكيل العكسي الخفيف لبروتوكولي HTTP/HTTPS. يغطي الجزء الذي يعثر فيه معظم المشغلين: بناء ملف PEM الموحد الذي يتوقعه Pound، بالترتيب الصحيح، ثم كتابة كتلة ListenHTTPS عاملة تعطّل البروتوكولات القديمة، وتوجه Pound إلى واجهة خلفية (backend)، وتنجو من فحص الإعدادات قبل إعادة تشغيل الخدمة.

ملاحظة سريعة عن إصدار Pound الذي يستهدفه هذا الدليل. تم التوقف عن مشروع Apsis Pound الأصلي في سبتمبر 2022. انتقل التطوير النشط إلى النسخة المتفرعة (fork) التي يتولى صيانتها Sergey Poznyakoff على github.com/graygnuorg/pound، والتي تُعد الآن المصدر الرسمي المعتمد والإصدار الذي تحزّمه توزيعات Linux الحالية. التوجيهات أدناه تتوافق مع سلسلة الإصدار 4.x الحديثة.

إنشاء CSR لـ Pound

إذا كنت قد أنشأت CSR بالفعل وحصلت على ملفات الشهادة الصادرة، تجاوز هذا الجزء وانتقل إلى تثبيت شهادة SSL على Pound.

قبل أن تتمكن جهة إصدار الشهادات (CA) من إصدار شهادتك، يجب عليك تقديم CSR (طلب توقيع الشهادة): وهو كتلة نصية صغيرة تحتوي على تفاصيل نطاقك ومفتاحًا عامًا، مقترنًا بمفتاح خاص يبقى على الخادم. لديك خياران:

  • إنشاء CSR تلقائيًا باستخدام مولّد CSR الخاص بنا. تُعيد الأداة CSR والمفتاح الخاص المطابق له، والذي تنقله بعد ذلك إلى الخادم.
  • إنشاء CSR على الخادم نفسه باستخدام OpenSSL باتباع درسنا حول كيفية إنشاء CSR على Pound. يبقى المفتاح الخاص على الخادم.

عند التقديم لطلب الشهادة، الصق كتلة CSR الكاملة، بما في ذلك السطرين —–BEGIN CERTIFICATE REQUEST—– و—–END CERTIFICATE REQUEST—–. إذا رغبت في تأكيد محتوى CSR قبل الإرسال، الصقه في أداة فك تشفير CSR الخاصة بنا. احتفظ بملف المفتاح الخاص المطابق (يكون عادة باسم yourdomain.key) في مكان آمن يمكن لجذر النظام (root) وحده قراءته؛ ستحتاج إليه أثناء التثبيت.

تثبيت شهادة SSL على Pound

بعد أن تُصدر جهة إصدار الشهادات (CA) الشهادة، عادةً ما تحصل على:

  • الشهادة الأساسية (شهادة الخادم)، وعادةً ما تكون ملف .crt أو .pem يحمل اسم نطاقك.
  • شهادة أو أكثر وسيطة (intermediate)، إما كملفات مستقلة أو مجمّعة في ملف واحد .ca-bundle.
  • المفتاح الخاص (ملف .key) الذي تم إنشاؤه مع CSR الخاص بك.

يتوقع Pound ملف PEM واحد يحتوي على الشهادة، والسلسلة الوسيطة، والمفتاح الخاص غير المشفّر. الدليل الرسمي لمشروع graygnuorg يوضح بشكل صريح الترتيب: الشهادة، ثم الشهادات الوسيطة (إن وُجدت)، ثم المفتاح الخاص، بهذا الترتيب. تخطي السلسلة هو أكثر خطأ تثبيت شائع: تبدو الشهادة سليمة في متصفح سطح المكتب لكنها تفشل على Android وعلى iOS وفي عملاء سطر الأوامر.

الخطوة 1: بناء ملف PEM الموحد

يفترض هذا الدليل أن ملفات الشهادة موضوعة في /etc/pound/. عدّل المسارات لتتطابق مع تنظيمك الخاص. اجمع الملفات الثلاثة في ملف PEM واحد. النمط أدناه الذي يستخدم التوجيه عبر tee ينفّذ إعادة التوجيه بصلاحيات root، وهو أمر ضروري لأن /etc/pound/ عادةً ما يكون قابلًا للكتابة من root فقط (تنفيذ sudo cat … > /etc/pound/… ببساطة سيفشل، لأن الصدفة (shell) تفتح ملف الخروج بصفتك المستخدم العادي قبل أن يعمل sudo أساسًا):

cat your_domain.crt intermediate.crt your_domain.key | sudo tee /etc/pound/your_domain.pem > /dev/null

إذا زوّدتك جهة إصدار الشهادات (CA) بالشهادات الوسيطة كملف واحد .ca-bundle، استخدم هذا بدلًا منها:

cat your_domain.crt your_domain.ca-bundle your_domain.key | sudo tee /etc/pound/your_domain.pem > /dev/null

استبدل أسماء الملفات بأسمائك الخاصة. يجب أن يكون المفتاح الخاص الموجود داخل الملف الموحد غير مشفّر، لأن Pound يبدأ التشغيل دون تفاعل ولا يمكنه طلب عبارة مرور. قيّد صلاحيات الملف الناتج بحيث لا يمكن لسواء root قراءته:

sudo chown root:root /etc/pound/your_domain.pem
sudo chmod 600 /etc/pound/your_domain.pem

الخطوة 2: تعديل pound.cfg

افتح ملف إعدادات Pound (غالبًا /etc/pound/pound.cfg على Debian وUbuntu، أو /etc/pound.cfg على بعض التوزيعات الأخرى) وأضف كتلة ListenHTTPS تشير إلى ملف PEM الموحد. تبدو الكتلة الحديثة الأدنى على النحو التالي:

ListenHTTPS
    Address 0.0.0.0
    Port 443
    Cert "/etc/pound/your_domain.pem"

    # Modern TLS only: disables SSLv2, SSLv3, TLSv1.0 and TLSv1.1,
    # leaving TLSv1.2 and TLSv1.3 enabled.
    Disable TLSv1_1
    Ciphers "ECDHE+AESGCM:ECDHE+CHACHA20:!aNULL:!MD5:!DSS"

    Service
        Backend
            Address 127.0.0.1
            Port 8080
        End
    End
End

بعض الملاحظات حول التوجيهات أعلاه:

  • Cert يزوّد ملف PEM الموحد الذي أنشأته في الخطوة 1. الدليل الرسمي واضح في أن Cert يجب أن يسبق جميع التوجيهات الخاصة بـ SSL الأخرى داخل المستمع (listener)، لذا احتفظ به في أعلى الكتلة.
  • Disable يعطّل البروتوكول المذكور وكل البروتوكولات الأقدم منه. لذا فإن Disable TLSv1_1 يعطّل SSLv2 وSSLv3 وTLSv1.0 وTLSv1.1، تاركًا TLSv1.2 وTLSv1.3 نشطين، وهو ما يتوافق مع التوجيهات المعمول بها حاليًا في القطاع.
  • Ciphers يحدد قائمة الشيفرات (ciphers) الخاصة بـ OpenSSL (وتُستخدم لـ TLS 1.2؛ أما TLS 1.3 فيتفاوض على مجموعات الشيفرات الخاصة به). القائمة أعلاه تقيّد الوكيل بمجموعات ECDHE الحديثة مع AEAD؛ إذا احتجت إلى دعم عملاء أقدم، استخدم بديلًا ملف تعريف “intermediate” الخاص بـ Mozilla من ssl-config.mozilla.org.
  • Service / Backend هو المكان الذي يوجّه Pound فيه حركة المرور المفكوكة التشفير. المثال يعيد التوجيه إلى واجهة خلفية واحدة على واجهة الاستضافة الذاتية (loopback) (المنفذ 8080)؛ استبدل العنوان والمنفذ بما يستمع تطبيقك عليه، وأضف كتل Backend أخرى إذا رغبت في أن يوازن Pound الحمل.

إذا كنت ترغب أيضًا في أن يقبل Pound اتصالات HTTP العادية ويوجهها (عادةً فقط لإعادة التوجيه إلى HTTPS، انظر الخطوة 4)، أضف كتلة ListenHTTP مستقلة في نفس الملف.

الخطوة 3: فحص الإعدادات وإعادة تشغيل Pound

قبل إعادة تحميل الخدمة، تحقق من صحة ملف الإعدادات لضمان ألا يؤدي خطأ إملائي إلى إيقاف الوكيل. يتضمن Pound وضع فحص مدمجًا:

sudo pound -c -f /etc/pound/pound.cfg

ينتهي بحالة خروج 0 دون طباعة أي شيء عند النجاح، أو بحالة خروج 1 مع رسالة خطأ تحدد الملف والسطر عند الفشل. أضف -v إذا كنت تريد تأكيدًا صريحًا بعبارة “configuration OK”. عند نجاح الفحص، أعد تشغيل Pound ليتعرف على المستمع الجديد:

sudo systemctl restart pound

على الأنظمة التي لا تستخدم systemd، استخدم بدلًا من ذلك نص init القديم:

sudo /etc/init.d/pound restart

تأكد من أن الخدمة تعمل وتستمع على المنفذ 443:

sudo systemctl status pound
sudo ss -tlnp | grep ':443'

الخطوة 4 (يُنصح بها): إعادة توجيه HTTP إلى HTTPS

للتأكد من أن الزوار الذين يكتبون النطاق مباشرة ينتهي بهم الأمر عند عنوان URL الآمن، أضف مستمعًا لـ HTTP العادي يستجيب لكل طلب بإعادة توجيه دائمة إلى نسخة HTTPS من نفس المسار:

ListenHTTP
    Address 0.0.0.0
    Port 80
    Service
        Redirect 301 "https://example.com$1"
    End
End

استبدل example.com بنطاقك الخاص. المرجع الخلفي $1 يحافظ على مسار الطلب الأصلي. نفّذ sudo pound -c -f /etc/pound/pound.cfg مرة أخرى، ثم أعد تشغيل الخدمة.

اختبار تثبيت SSL

افتح موقعك عبر https:// في متصفح وتحقق من أن رمز القفل مغلق وأن الشهادة تطابق نطاقك. ثم قم بإجراء فحص أعمق باستخدام أداة SSL Checker الخاصة بنا للحصول على تقرير فوري عن الشهادة والسلسلة والبروتوكولات والشيفرات التي يقدّمها Pound. نتيجة نظيفة هناك تعني أن العملاء على جميع المنصات الرئيسية، بما في ذلك الأجهزة المحمولة وعملاء API، سيثقون بالشهادة.

الأسئلة الشائعة

أي إصدار من Pound يجب أن أثبّته؟

تم التخلي عن مشروع Apsis الأصلي في 2022. النسخة المتفرعة التي تُصان بنشاط هي graygnuorg/pound بواسطة Sergey Poznyakoff، وهي حاليًا في سلسلة الإصدار 4.x، وهي ما تحزّمه توزيعات Linux الكبرى تحت اسم pound. إذا كنت تشغّل أي شيء من سلسلة الإصدار 2.x القديمة، خطط للانتقال إلى إصدار حديث: توجيهات الإعدادات في هذا الدليل تفترض النسخة المتفرعة الحديثة.

ما الترتيب الذي يجب أن تكون فيه الشهادة والسلسلة والمفتاح داخل ملف PEM؟

وفقًا لدليل Pound: شهادة الخادم أولًا، ثم الشهادات الوسيطة (إن وُجدت)، ثم المفتاح الخاص، كلها مُشفّرة بصيغة PEM، في ذلك الملف الواحد. يجب ألا يكون المفتاح الخاص محميًا بعبارة مرور، لأن Pound يبدأ التشغيل كخدمة daemon وليس لديه أي وسيلة لطلب عبارة مرور.

كيف أعطّل إصدارات TLS القديمة في Pound؟

استخدم توجيه Disable داخل كتلة ListenHTTPS. توجيه Disable في Pound يعطّل البروتوكول المذكور وكل البروتوكولات الأقدم منه، لذا فإن Disable TLSv1_1 يعطّل SSLv2 وSSLv3 وTLSv1.0 وTLSv1.1، تاركًا فقط TLSv1.2 وTLSv1.3. هذا هو الإعداد المُنصح به للتنفيذات الجديدة.

هل يمكنني استضافة أكثر من موقع HTTPS واحد على نفس نسخة Pound؟

نعم. يدعم Pound تقنية SNI، لذا يمكنك تعريف عدة عبارات Cert داخل نفس مستمع ListenHTTPS (أو توجيه Cert إلى مجلد يحتوي على ملفات PEM). يتصفح Pound الشهادات بالترتيب ويقدّم أول شهادة يتطابق اسمها الشائع (Common Name) أو SAN مع اسم المضيف المطلوب، لذا اذكر الشهادات الأكثر تحديدًا (أسماء المضيف) قبل شهادات الحرف البدل (wildcards).

كيف أختبر إعدادات Pound دون إعادة التشغيل؟

نفّذ sudo pound -c -f /etc/pound/pound.cfg. تفحص العلامة -c ملف الإعدادات بحثًا عن أخطاء نحوية وتخرج دون بدء تشغيل الوكيل؛ حالة الخروج 0 تعني النجاح، وحالة الخروج 1 تعني وجود خطأ (تخبرك الرسالة بالملف والسطر). أضف -v للحصول على رسالة نجاح صريحة.

كل كم فترة يجب أن أجدد الشهادة؟

اعتبارًا من 15 مارس 2026، أصبحت شهادات SSL/TLS الموثوقة علنيًا محدودة بسقف 200 يوم، وقد جدول منتدى CA/Browser مزيدًا من التخفيضات (إلى 100 يوم في 2027 و47 يومًا في 2029). خطط لتكرار عملية التثبيت أعلاه قبل كل انتهاء صلاحية بوقت كافٍ، أو قم بأتمتة عمليات التجديد باستخدام ACME.

وفِّر 10% على شهادات SSL عند الطلب اليوم!

إصدار سريع، وتشفير قوي، وثقة في المتصفح بنسبة 99.99%، ودعم مخصص، وضمان استرداد المال خلال 25 يومًا. رمز القسيمة: SAVE10

صورة مفصلة لتنين أثناء طيرانه

كاتب محتوى متمرس متخصص في شهادات SSL. تحويل موضوعات الأمن السيبراني المعقدة إلى محتوى واضح وجذاب. المساهمة في تحسين الأمن الرقمي من خلال السرد المؤثر.