الدورة العربية لادارة السيرفرات لينوكس VPS Linux Nginx PHP Mysql
جدول المحتويات:
- المتطلبات الأساسية
- تثبيت Certbot
- مجموعة Dh (Diffie-Hellman)
- الحصول على شهادة دعونا تشفير SSL
- التجديد التلقائي دعونا تشفير شهادة SSL
- استنتاج
Let's Encrypt هي مرجع شهادات مجاني وأتمتة ومفتوح تم تطويره بواسطة مجموعة أبحاث أمان الإنترنت (ISRG) التي توفر شهادات SSL مجانية.
الشهادات التي تصدرها Let's Encrypt موثوق بها من قبل جميع المتصفحات الرئيسية وهي صالحة لمدة 90 يومًا من تاريخ الإصدار.
يوضح هذا البرنامج التعليمي كيفية تثبيت شهادة Let's Encrypt SSL المجانية على دبيان 10 ، حيث يقوم Buster بتشغيل Nginx كخادم ويب. سنعرض أيضًا كيفية تكوين Nginx لاستخدام شهادة SSL وتمكين HTTP / 2.
المتطلبات الأساسية
تأكد من استيفاء الشروط التالية قبل متابعة الدليل:
- تسجيل الدخول كجذر أو مستخدم له امتيازات sudo. يجب أن يشير المجال الذي ترغب في الحصول على شهادة SSL إليه إلى IP الخاص بالخادم العام. سنستخدم
example.com. تثبيت Nginx.
تثبيت Certbot
سنستخدم أداة certbot للحصول على الشهادات وتجديدها.
Certbot هي أداة كاملة المزايا وسهل الاستخدام تعمل على أتمتة المهام للحصول على وتجديد شهادات دعونا تشفير SSL وتكوين خوادم الويب لاستخدام الشهادات.
يتم تضمين حزمة certbot في مستودعات دبيان الافتراضية. قم بتشغيل الأوامر التالية لتثبيت certbot:
sudo apt update
sudo apt install certbot
مجموعة Dh (Diffie-Hellman)
يعد Diffie – Hellman key exchange (DH) طريقة لتبادل آمن لمفاتيح التشفير عبر قناة اتصال غير آمنة.
سنقوم بإنشاء مجموعة جديدة من معلمات DH 2048 بت لتعزيز الأمن:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
يمكنك أيضًا تغيير الحجم إلى 4096 بت ، لكن قد يستغرق الجيل أكثر من 30 دقيقة اعتمادًا على إنتروبيا النظام.
الحصول على شهادة دعونا تشفير SSL
للحصول على شهادة SSL للنطاق ، سنستخدم المكون الإضافي Webroot. إنه يعمل عن طريق إنشاء ملف مؤقت للتحقق من صحة النطاق المطلوب في الدليل
${webroot-path}/.well-known/acme-challenge
. يقوم خادم Let's Encrypt بإرسال طلبات HTTP إلى الملف المؤقت للتحقق من أن المجال المطلوب يحل إلى الخادم حيث يتم تشغيل certbot.
نحن بصدد تعيين جميع طلبات HTTP لـ
.well-known/acme-challenge
إلى دليل واحد ،
/var/lib/letsencrypt
.
قم بتشغيل الأوامر التالية لإنشاء الدليل وجعله قابلاً للكتابة لخادم Nginx:
mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
لتجنب تكرار الشفرة ، سنقوم بإنشاء قصتين سيتم تضمينهما في جميع ملفات كتلة خادم Nginx.
افتح محرر النص الخاص بك وقم بإنشاء المقتطف الأول ،
letsencrypt.conf
:
sudo nano /etc/nginx/snippets/letsencrypt.conf
/etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
يشتمل المقتطف الثاني
ssl.conf
الموصى بها من قِبل Mozilla ، وتمكين OCSP Stapling ، HTTP Strict Transport Security (HSTS) ، ويفرض القليل من رؤوس HTTP التي تركز على الأمان.
sudo nano /etc/nginx/snippets/ssl.conf
/etc/nginx/snippets/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 30s; add_header Strict-Transport-Security "max-age=63072000" always; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;
بمجرد الانتهاء من ذلك ، افتح ملف كتلة خادم النطاق وقم بتضمين مقتطف
letsencrypt.conf
كما هو موضح أدناه:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
قم بإنشاء رابط رمزي إلى دليل
sites-enabled
لتمكين كتلة خادم المجال:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
أعد تشغيل خدمة Nginx لتصبح التغييرات نافذة المفعول:
sudo systemctl restart nginx
أنت الآن جاهز للحصول على ملفات شهادة SSL عن طريق تشغيل الأمر التالي:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
إذا تم الحصول على شهادة SSL بنجاح ، فستتم طباعة الرسالة التالية على الجهاز:
IMPORTANT NOTES: IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2020-02-22. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
حرر كتلة خادم المجال وقم بتضمين ملفات شهادات SSL كما يلي:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; #… other code }
يخبر التكوين أعلاه Nginx بإعادة التوجيه من HTTP إلى HTTPS ومن www إلى إصدار غير www.
أعد تشغيل أو أعد تحميل خدمة Nginx لتصبح التغييرات نافذة المفعول:
sudo systemctl restart nginx
افتح موقع الويب الخاص بك باستخدام
https://
، وستلاحظ رمز القفل الأخضر.

التجديد التلقائي دعونا تشفير شهادة SSL
شهادات تشفير دعونا صالحة لمدة 90 يوما. لتجديد الشهادات تلقائيًا قبل انتهاء صلاحيتها ، تنشئ حزمة certbot cronjob تعمل مرتين يوميًا وتجدد تلقائيًا أي شهادة قبل 30 يومًا من انتهاء صلاحيتها.
عند التجديد ، يجب إعادة تحميل خدمة nginx حتى يقوم الخادم بتحميل الشهادة. إلحاق -
--renew-hook "systemctl reload nginx"
بملف
/etc/cron.d/certbot
بحيث يبدو كما يلي:
sudo nano /etc/cron.d/certbot
/etc/cron.d/certbot
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload nginx"
اختبار عملية التجديد التلقائي ، عن طريق تشغيل هذا الأمر:
sudo certbot renew --dry-run
إذا لم تكن هناك أخطاء ، فهذا يعني أن عملية التجديد كانت ناجحة.
استنتاج
وجود شهادة SSL أمر لا بد منه في الوقت الحاضر. إنه يؤمن موقع الويب الخاص بك ، ويزيد من موضع ترتيب SERP ، ويسمح لك بتمكين HTTP / 2 على خادم الويب الخاص بك.
في هذا البرنامج التعليمي ، أظهرنا لك كيفية إنشاء وتجديد شهادات طبقة المقابس الآمنة باستخدام البرنامج النصي certbot. لقد أظهرنا لك أيضًا كيفية تكوين Nginx لاستخدام الشهادات.
لمعرفة المزيد حول Certbot ، تفضل بزيارة وثائق Certbot.
دعنا نجعلك تشفير certbot sslتأمين nginx مع دعونا تشفير على centos 7
في هذا البرنامج التعليمي ، سنقدم إرشادات خطوة بخطوة حول كيفية تأمين Nginx الخاص بك باستخدام Let's Encrypt باستخدام أداة certbot على CentOS 7
تأمين nginx مع دعونا تشفير على ديبيان 9
في هذا البرنامج التعليمي ، سنشرح كيفية استخدام أداة Certbot للحصول على شهادة SSL مجانية لـ Nginx في Debian 9. سنعرض أيضًا كيفية تكوين Nginx لاستخدام شهادة SSL وتمكين HTTP / 2.
تأمين nginx مع دعونا تشفير على أوبونتو 18.04
Let's Encrypt هي سلطة شهادات مجانية ومفتوحة تم تطويرها بواسطة مجموعة Internet Security Research Group. في هذا البرنامج التعليمي ، سنقدم إرشادات خطوة بخطوة حول كيفية تأمين Nginx باستخدام Let's Encrypt باستخدام أداة certbot على Ubuntu 18.04







