Skip to content
تم إنشاء هذه الصفحة وترجمتها بمساعدة الذكاء الاصطناعي. إذا لاحظت أي أخطاء، لا تتردد في المساهمة في تحسينها. تعديل على GitHub

إعداد SSL/TLS

يدعم PRX-WAF إدارة شهادات TLS التلقائية عبر Let's Encrypt (ACME v2) وإعداد الشهادات اليدوي وHTTP/3 عبر QUIC. تغطي هذه الصفحة جميع إعدادات المتعلقة بـ HTTPS.

الشهادات التلقائية (Let's Encrypt)

يستخدم PRX-WAF مكتبة instant-acme للحصول على شهادات TLS وتجديدها تلقائياً من Let's Encrypt. عند إعداد مضيف مع تفعيل SSL، سيقوم PRX-WAF بـ:

  1. الاستجابة لتحديات ACME HTTP-01 على المنفذ 80
  2. الحصول على شهادة من Let's Encrypt
  3. تخزين الشهادة في قاعدة البيانات
  4. التجديد التلقائي قبل انتهاء الصلاحية

TIP

لكي تعمل الشهادات التلقائية، يجب أن يكون المنفذ 80 متاحاً من الإنترنت للتحقق من تحدي ACME HTTP-01.

الشهادات اليدوية

للبيئات التي لا يناسبها ACME التلقائي، هيِّئ الشهادات يدوياً:

toml
[http3]
cert_pem = "/etc/prx-waf/tls/cert.pem"
key_pem  = "/etc/prx-waf/tls/key.pem"

يمكنك أيضاً رفع الشهادات عبر واجهة المستخدم الإدارية:

  1. انتقل إلى SSL Certificates في الشريط الجانبي
  2. انقر Upload Certificate
  3. أدخِل سلسلة الشهادات (PEM) والمفتاح الخاص (PEM)
  4. اربط الشهادة بمضيف

أو عبر API:

bash
curl -X POST http://localhost:9527/api/certificates \
  -H "Authorization: Bearer $TOKEN" \
  -F "cert=@/path/to/cert.pem" \
  -F "key=@/path/to/key.pem" \
  -F "host=example.com"

مُستمع TLS

يستمع PRX-WAF لحركة HTTPS على عنوان TLS المُهيَّأ:

toml
[proxy]
listen_addr     = "0.0.0.0:80"      # HTTP
listen_addr_tls = "0.0.0.0:443"     # HTTPS

HTTP/3 (QUIC)

يدعم PRX-WAF HTTP/3 عبر مكتبة Quinn QUIC. فعِّله في الإعداد:

toml
[http3]
enabled     = true
listen_addr = "0.0.0.0:443"
cert_pem    = "/etc/prx-waf/tls/cert.pem"
key_pem     = "/etc/prx-waf/tls/key.pem"

WARNING

يتطلب HTTP/3 شهادة TLS صالحة. يجب توفير مسارات الشهادة والمفتاح عند تفعيل HTTP/3. الشهادات التلقائية من Let's Encrypt مدعومة أيضاً لـ HTTP/3.

يعمل HTTP/3 عبر UDP على نفس منفذ HTTPS (443). العملاء الذين يدعمون QUIC سيترقَّون تلقائياً، بينما يعود الآخرون إلى HTTP/2 أو HTTP/1.1 عبر TCP.

إعادة توجيه HTTPS

لإعادة توجيه جميع حركة HTTP إلى HTTPS، هيِّئ مضيفيك بالمنفذ 80 (HTTP) والمنفذ 443 (HTTPS). سيعيد PRX-WAF توجيه طلبات HTTP إلى مقابلاتها من HTTPS تلقائياً عند إعداد SSL لمضيف.

تخزين الشهادات

تُخزَّن جميع الشهادات (التلقائية واليدوية) في قاعدة بيانات PostgreSQL. يحتوي جدول certificates (الترحيل 0003) على:

  • سلسلة الشهادات (PEM)
  • المفتاح الخاص (مشفَّر بـ AES-256-GCM)
  • اسم النطاق
  • تاريخ انتهاء الصلاحية
  • معلومات حساب ACME (للتجديد التلقائي)

INFO

تُشفَّر المفاتيح الخاصة في الراحة باستخدام AES-256-GCM. مفتاح التشفير مشتق من الإعداد. لا تخزِّن أبداً مفاتيح خاصة غير مشفَّرة في قاعدة البيانات.

Docker مع HTTPS

عند التشغيل في Docker، شغِّل المنفذ 443 لحركة TLS:

yaml
# docker-compose.yml
services:
  prx-waf:
    ports:
      - "80:80"
      - "443:443"
      - "9527:9527"

لـ HTTP/3، شغِّل أيضاً منفذ UDP:

yaml
    ports:
      - "80:80"
      - "443:443/tcp"
      - "443:443/udp"  # HTTP/3 QUIC
      - "9527:9527"

أفضل الممارسات

  1. استخدم دائماً HTTPS في الإنتاج. يجب أن يخدم HTTP تحديات ACME فقط ويُعيد التوجيه إلى HTTPS.

  2. فعِّل HTTP/3 للعملاء الذين يدعمونه. يوفر QUIC إنشاء اتصال أسرع وأداء أفضل على الشبكات ذات معدل الفقد العالي.

  3. استخدم الشهادات التلقائية عند الإمكان. شهادات Let's Encrypt مجانية وموثوق بها من جميع المتصفحات ويُجددها PRX-WAF تلقائياً.

  4. قيِّد الوصول إلى API الإدارة. يجب أن يكون API الإدارة متاحاً فقط من الشبكات الموثوقة:

toml
[security]
admin_ip_allowlist = ["10.0.0.0/8", "172.16.0.0/12"]

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

Released under the Apache-2.0 License.