bg-tutorials

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

في هذا الدليل، ستتعلم كيفية تثبيت شهادة SSL على Apache، خطوة بخطوة. تنطبق التعليمات على Apache 2.4، وهو إصدار الاستقرار الحالي.

جدول المحتويات

كيفية إنشاء كود CSR على Apache؟

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

لديك خياران:

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

بعد أن تقوم جهة إصدار الشهادات بتوقيع شهادة SSL وإرسالها إليك، يمكنك تثبيتها بأمان على خادم Apache الخاص بك. اتبع الخطوات أدناه.

الخطوة 1: تجهيز ملفات الشهادة

قم بتنزيل الملفات واستخراجها من مجلد ZIP الذي تلقيته من جهة إصدار الشهادات. ستجد عادةً:

  • ملف .crt – شهادة SSL الأساسية الخاصة بك.
  • ملف .ca-bundle – الشهادات الوسيطة (والجذرية) التي تشكّل سلسلة الثقة. هذه السلسلة ضرورية حتى تتمكن المتصفحات والتطبيقات من التحقق من شهادتك. بدونها، قد تُصنّف بعض العملاء موقعك على أنه غير آمن.

قم برفع هذه الملفات، إلى جانب المفتاح الخاص (.key) الذي أنشأته مع CSR، إلى دليل آمن على خادمك، على سبيل المثال /etc/ssl/. احرص على أن يكون المفتاح الخاص قابلًا للقراءة من قِبل المستخدم الجذر فقط (chmod 600).

موصى به (Apache 2.4.8 والإصدارات الأحدث): ادمج شهادتك وحزمة CA في ملف “سلسلة كاملة” واحد. منذ Apache 2.4.8، يقوم التوجيه SSLCertificateFile بتحميل الشهادات الوسيطة مباشرةً من هذا الملف، وهذا هو السبب في أن التوجيه القديم SSLCertificateChainFile لم يعد ضروريًا:

cat your_domain.crt your_domain.ca-bundle > your_domain_fullchain.crt

إذا قدّمت جهة إصدار الشهادات الشهادات الوسيطة كـملفات منفصلة، فقم بدمجها مع شهادتك أولًا، متبوعةً بالشهادات الوسيطة مرتبةً من الشهادة التي وقّعت شهادتك وصولًا إلى الجذر (الشهادة الجذرية نفسها اختيارية):

cat your_domain.crt intermediate.crt root.crt > your_domain_fullchain.crt

على سبيل المثال، عند تثبيت شهادة Sectigo PositiveSSL، ستقوم بدمج شهادة نطاقك مع حزمة Sectigo الوسيطة. استخدم دائمًا أسماء الملفات الدقيقة التي قدّمتها جهة إصدار الشهادات.

الخطوة 2: تفعيل وحدة SSL (mod_ssl)

قبل تهيئة HTTPS، تأكد من تفعيل وحدة SSL في Apache.

على Debian/Ubuntu، فعّل mod_sslmod_headers، الذي ستحتاجه لرأس HSTS في الخطوة 4):

sudo a2enmod ssl
sudo a2enmod headers

على RHEL/CentOS/AlmaLinux/Rocky Linux، قم بتثبيت حزمة وحدة SSL (تُحمَّل الوحدة تلقائيًا بمجرد تثبيتها):

sudo dnf install mod_ssl

الخطوة 3: تحديد موقع ملف تهيئة Apache

اعتمادًا على نظام التشغيل وإصدار Apache، قد تكون التهيئة موجودة في ملفات مختلفة. ابحث عن httpd.conf أو apache2.conf أو ملف تهيئة SSL/موقع مخصص، في أحد المواقع التالية:

  • Debian/Ubuntu: التهيئة الرئيسية /etc/apache2/apache2.conf؛ تهيئات كل موقع في /etc/apache2/sites-available/.
  • RHEL/CentOS/AlmaLinux/Rocky: التهيئة الرئيسية /etc/httpd/conf/httpd.conf؛ تهيئة SSL /etc/httpd/conf.d/ssl.conf.

ملاحظة: إذا كان خادم Apache الخاص بك يعمل على Ubuntu، يمكنك أيضًا اتباع تعليمات تثبيت SSL المخصصة لـ Ubuntu.

الخطوة 4: تهيئة المضيف الافتراضي

أولًا، قم بعمل نسخة احتياطية من ملف التهيئة الحالي. بهذه الطريقة، إذا حدث خطأ ما، يمكنك التراجع عن التغييرات بسرعة:

sudo cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.backup

الآن افتح ملف التهيئة وقم بإعداد المضيف الافتراضي لـ HTTPS (المنفذ 443). يبدو المضيف الافتراضي الحديث الكامل كما يلي:

<VirtualHost *:443>
    ServerName  www.example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/example

    SSLEngine on

    # Apache 2.4.8+ : server certificate + intermediate chain in ONE file
    SSLCertificateFile    /etc/ssl/example_com_fullchain.crt
    SSLCertificateKeyFile /etc/ssl/example_com.key

    # Recommended TLS hardening (2026)
    SSLProtocol         -all +TLSv1.2 +TLSv1.3
    SSLHonorCipherOrder off

    # Tell browsers to always use HTTPS (enable only after HTTPS works)
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

    ErrorLog  ${APACHE_LOG_DIR}/example_error.log
    CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>

استبدل example.com وجذر المستند ومسارات الملفات بقيمك الخاصة. إليك ما تفعله التوجيهات الرئيسية:

  • SSLEngine on – يُفعّل SSL/TLS لهذا المضيف الافتراضي.
  • SSLCertificateFile – المسار إلى ملف السلسلة الكاملة (الشهادة + الشهادات الوسيطة) الذي أنشأته في الخطوة 1. في Apache 2.4.8+ يحلّ هذا التوجيه الواحد محل SSLCertificateChainFile المُهمَل.
  • SSLCertificateKeyFile – المسار إلى مفتاحك الخاص، الذي تم إنشاؤه مع CSR.
  • SSLProtocol -all +TLSv1.2 +TLSv1.3 – يُعطّل بروتوكولات SSL/TLS القديمة وغير الآمنة ويسمح فقط بـ TLS 1.2 و TLS 1.3.
  • Strict-Transport-Security (HSTS) – يوجّه المتصفحات للاتصال عبر HTTPS فقط. يتطلب mod_headers (المُفعَّل في الخطوة 2). قم بتفعيله فقط بعد التأكد من أن HTTPS يعمل بشكل صحيح.

تأكد من أن أيًا من هذه الأسطر لا يبدأ بـ # (مما سيجعلها تعليقًا). على Debian/Ubuntu، يُحلَّل ${APACHE_LOG_DIR} إلى /var/log/apache2؛ على الأنظمة المبنية على RHEL استخدم /var/log/httpd/ بدلًا من ذلك.

الخوادم القديمة: إذا كنت عالقًا على إصدار Apache أقدم من 2.4.8، احتفظ بالشهادة والسلسلة في ملفات منفصلة وأضف التوجيه المُهمَل SSLCertificateChainFile /etc/ssl/example_com.ca-bundle أسفل SSLCertificateFile. على أي خادم حديث، يُفضَّل استخدام نهج السلسلة الكاملة أعلاه.

التقوية المتقدمة (اختياري): للحصول على مجموعة تشفير أقوى وتفعيل OCSP stapling، قم بإنشاء تهيئة مخصصة باستخدام Mozilla SSL Configuration Generator. يتطلب OCSP stapling أيضًا توجيه SSLStaplingCache في تهيئة Apache العامة.

الخطوة 5: إعادة توجيه HTTP إلى HTTPS

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

<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / https://www.example.com/
</VirtualHost>

الخطوة 6: اختبار التهيئة وإعادة تشغيل Apache

اختبر دائمًا تهيئتك قبل إعادة التشغيل. قد يؤدي خطأ في الصياغة إلى تعطّل موقعك، لذا قم بتشغيل:

sudo apachectl configtest

إذا كان كل شيء صحيحًا، ستظهر لك:

Syntax OK

الآن طبّق التغييرات بإعادة تحميل Apache (تُفعّل إعادة التحميل التهيئة الجديدة دون قطع الاتصالات الحالية):

sudo systemctl reload apache2     # Debian/Ubuntu
sudo systemctl reload httpd       # RHEL/CentOS/AlmaLinux/Rocky

إذا لم تكن إعادة التحميل كافية، أعد تشغيل الخدمة بدلًا من ذلك (sudo systemctl restart apache2 أو httpd). على الأنظمة القديمة التي لا تدعم systemd، استخدم sudo apachectl graceful.

إذا نجح التثبيت، تهانينا! موقعك الآن محمي بـ SSL/TLS.

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

بعد تثبيت شهادة SSL على Apache، تحقق من أن كل شيء يعمل كما هو متوقع. سيكشف الفحص الفوري عن أي أخطاء أو ثغرات قد تؤثر على أداء شهادتك. استخدم أداة SSL Checker الخاصة بنا للتحقق من حالة تثبيتك.

يمكنك أيضًا التحقق من الشهادة وسلسلتها مباشرةً من سطر الأوامر:

openssl s_client -connect www.example.com:443 -servername www.example.com

أين تشتري شهادة SSL لـ Apache؟

أفضل مكان للحصول على شهادة SSL لـ Apache هو من SSL Dragon. نقدم أسعارًا وخصومات لا تُضاهى عبر مجموعتنا الكاملة من منتجات SSL، وقد اخترنا بعناية أفضل علامات SSL التجارية في السوق لتزويد موقعك بحماية محكمة. جميع شهاداتنا SSL متوافقة مع Apache. احصل على شهادة SSL الآن!

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

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

ما هو SSL في Apache؟

SSL (طبقة المقابس الآمنة)، التي خلفها الآن TLS (أمان طبقة النقل)، هو بروتوكول تشفير يُشفّر الاتصال بين نقطتَي نهاية شبكيتين، على سبيل المثال خادم ويب مثل Apache ومتصفح المستخدم.

كيف أعرف إذا كان Apache SSL مُفعَّلًا؟

على توزيعات Debian و Ubuntu، ابحث في التهيئة عن توجيه بروتوكول SSL:

grep -ir SSLProtocol /etc/apache2/

إذا كان SSL مُهيَّأً، ستظهر لك نتيجة مشابهة لـ:

/etc/apache2/mods-available/ssl.conf:SSLProtocol +TLSv1.2 +TLSv1.3

يمكنك أيضًا التأكد من أن وحدة SSL محمّلة في الخادم الجاري:

apachectl -M | grep ssl

أين يوجد ملف SSL .conf في Apache؟

قد يكون ملف التهيئة في مواقع مختلفة اعتمادًا على نظام التشغيل والإعداد. على Debian/Ubuntu، تحقق من /etc/apache2/apache2.conf وملفات كل موقع في /etc/apache2/sites-available/. على RHEL/CentOS/AlmaLinux/Rocky، تحقق من /etc/httpd/conf/httpd.conf و/etc/httpd/conf.d/ssl.conf.

ما الفرق بين SSLCertificateFile و SSLCertificateChainFile؟

SSLCertificateFile يشير إلى شهادة خادمك. منذ Apache 2.4.8، يمكن للملف نفسه أن يحتوي أيضًا على الشهادات الوسيطة، وبذلك يُقدّم السلسلة الكاملة. SSLCertificateChainFile كان الطريقة القديمة لتوفير تلك الشهادات الوسيطة بشكل منفصل، لكنه مُهمَل منذ Apache 2.4.8. على أي خادم حديث، ضع الشهادة والشهادات الوسيطة في ملف واحد وأشر إليه باستخدام SSLCertificateFile فقط.

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

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

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

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