يوضح لك هذا الدليل كيفية تثبيت شهادة 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، سيثقون بالشهادة.
الأسئلة الشائعة
تم التخلي عن مشروع Apsis الأصلي في 2022. النسخة المتفرعة التي تُصان بنشاط هي graygnuorg/pound بواسطة Sergey Poznyakoff، وهي حاليًا في سلسلة الإصدار 4.x، وهي ما تحزّمه توزيعات Linux الكبرى تحت اسم pound. إذا كنت تشغّل أي شيء من سلسلة الإصدار 2.x القديمة، خطط للانتقال إلى إصدار حديث: توجيهات الإعدادات في هذا الدليل تفترض النسخة المتفرعة الحديثة.
وفقًا لدليل Pound: شهادة الخادم أولًا، ثم الشهادات الوسيطة (إن وُجدت)، ثم المفتاح الخاص، كلها مُشفّرة بصيغة PEM، في ذلك الملف الواحد. يجب ألا يكون المفتاح الخاص محميًا بعبارة مرور، لأن Pound يبدأ التشغيل كخدمة daemon وليس لديه أي وسيلة لطلب عبارة مرور.
استخدم توجيه Disable داخل كتلة ListenHTTPS. توجيه Disable في Pound يعطّل البروتوكول المذكور وكل البروتوكولات الأقدم منه، لذا فإن Disable TLSv1_1 يعطّل SSLv2 وSSLv3 وTLSv1.0 وTLSv1.1، تاركًا فقط TLSv1.2 وTLSv1.3. هذا هو الإعداد المُنصح به للتنفيذات الجديدة.
نعم. يدعم Pound تقنية SNI، لذا يمكنك تعريف عدة عبارات Cert داخل نفس مستمع ListenHTTPS (أو توجيه Cert إلى مجلد يحتوي على ملفات PEM). يتصفح Pound الشهادات بالترتيب ويقدّم أول شهادة يتطابق اسمها الشائع (Common Name) أو SAN مع اسم المضيف المطلوب، لذا اذكر الشهادات الأكثر تحديدًا (أسماء المضيف) قبل شهادات الحرف البدل (wildcards).
نفّذ 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


