الدورة العربية لادارة السيرفرات لينوكس VPS Linux Nginx PHP Mysql
جدول المحتويات:
- المتطلبات الأساسية
- تثبيت Certbot
- توليد قوي Dh (ديفي هيلمان) المجموعة
- الحصول على شهادة دعونا تشفير SSL
- التجديد التلقائي دعونا تشفير شهادة SSL
- استنتاج
Let's Encrypt هي مرجع شهادات مجاني وأتمتة ومفتوح تم تطويره بواسطة مجموعة أبحاث أمان الإنترنت (ISRG) التي توفر شهادات SSL مجانية.
الشهادات التي تصدرها Let's Encrypt موثوق بها من قبل جميع المتصفحات الرئيسية وهي صالحة لمدة 90 يومًا من تاريخ الإصدار.
في هذا البرنامج التعليمي ، سنقدم إرشادات خطوة بخطوة حول كيفية تثبيت شهادة Let's Encrypt SSL المجانية على CentOS 8 التي تستخدم Nginx كخادم ويب. سنعرض أيضًا كيفية تكوين Nginx لاستخدام شهادة SSL وتمكين HTTP / 2.
المتطلبات الأساسية
قبل المتابعة ، تأكد من استيفاء الشروط التالية:
- لديك اسم مجال يشير إلى عنوان IP العام الخاص بك. سنستخدم
example.com. لديك Nginx مثبتًا على خادم CentOS الخاص بك. تم تكوين جدار الحماية الخاص بك لقبول الاتصالات على المنفذين 80 و 443.
تثبيت Certbot
Certbot هي أداة سطر أوامر مجانية تعمل على تبسيط عملية الحصول على وتجديد شهادات دعونا تشفير SSL من HTTPS وتمكينها تلقائيًا على خادمك.
لا يتم تضمين حزمة certbot في مستودعات CentOS 8 القياسية ، ولكن يمكن تنزيلها من موقع البائع.
قم بتشغيل الأمر
wget
التالي كمستخدم الجذر أو sudo لتنزيل البرنامج النصي certbot إلى دليل
/usr/local/bin
:
sudo wget -P /usr/local/bin
بمجرد اكتمال التنزيل ، اجعل الملف قابلاً للتنفيذ:
sudo chmod +x /usr/local/bin/certbot-auto
توليد قوي Dh (ديفي هيلمان) المجموعة
يعد Diffie – Hellman key exchange (DH) طريقة لتبادل آمن لمفاتيح التشفير عبر قناة اتصال غير آمنة.
قم بإنشاء مجموعة جديدة من معلمات DH 2048 بت عن طريق كتابة الأمر التالي:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
الحصول على شهادة دعونا تشفير SSL
للحصول على شهادة طبقة المقابس الآمنة للمجال ، سنستخدم المكون الإضافي Webroot الذي يعمل عن طريق إنشاء ملف مؤقت للتحقق من صحة النطاق المطلوب في دليل
${webroot-path}/.well-known/acme-challenge
. يقوم خادم Let's Encrypt بإرسال طلبات HTTP إلى الملف المؤقت للتحقق من أن المجال المطلوب يحل إلى الخادم حيث يتم تشغيل certbot.
ولجعل الأمر أكثر بساطة ، سنقوم بتعيين جميع طلبات HTTP الخاصة بـ
.well-known/acme-challenge
إلى دليل واحد ،
/var/lib/letsencrypt
.
ستنشئ الأوامر التالية الدليل وتجعله قابلاً للكتابة لخادم Nginx.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp nginx /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
لتجنب تكرار الشفرة ، قم بإنشاء المقتطفين التاليين اللذين سيتم تضمينهما في جميع ملفات كتلة خادم Nginx:
sudo mkdir /etc/nginx/snippets
/etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
/etc/nginx/snippets/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; 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;
يشتمل المقتطف أعلاه على وحدات التقطيع التي أوصت بها Mozilla ، وتمكين OCSP Stapling ، HTTP Strict Transport Security (HSTS) ، ويفرض القليل من رؤوس HTTP التي تركز على الأمان.
بمجرد إنشاء المقتطفات ، افتح كتلة خادم المجال وقم بتضمين مقتطف
letsencrypt.conf
، كما هو موضح أدناه:
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
أعد تحميل تكوين Nginx لتصبح التغييرات نافذة المفعول:
sudo systemctl reload nginx
قم بتشغيل أداة certbot باستخدام المكون الإضافي webroot للحصول على ملفات شهادة SSL لنطاقك:
sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
إذا كانت هذه هي المرة الأولى التي تستدعي فيها
certbot
،
certbot
الأداة بتثبيت التبعيات المفقودة.
بمجرد الحصول على شهادة طبقة المنافذ الآمنة (SSL) بنجاح ، سيقوم سيرت سيرت بطباعة الرسالة التالية:
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-03-12. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
الآن بعد أن حصلت على ملفات الشهادة ، يمكنك تعديل كتلة خادم المجال كما يلي:
/etc/nginx/conf.d/example.com.conf
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 }
من خلال التكوين أعلاه ، فإننا نلزم HTTPS ونعيد توجيه www إلى إصدار www.
أخيرًا ، أعد تحميل خدمة Nginx لتصبح التغييرات نافذة المفعول:
sudo systemctl reload nginx
الآن ، افتح موقع الويب الخاص بك باستخدام
https://
، وستلاحظ رمز القفل الأخضر.

التجديد التلقائي دعونا تشفير شهادة SSL
شهادات تشفير دعونا صالحة لمدة 90 يوما. لتجديد الشهادات تلقائيًا قبل انتهاء صلاحيتها ، قم بإنشاء cronjob الذي سيتم تشغيله مرتين في اليوم وتجديد أي شهادة تلقائيًا قبل 30 يومًا من انتهاء الصلاحية.
استخدم الأمر
crontab
لإنشاء cronjob جديد:
sudo crontab -e
الصق السطر التالي:
0 */12 * * * root test -x /usr/local/bin/certbot-auto -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && /usr/local/bin/certbot-auto -q renew --renew-hook "systemctl reload nginx"
أحفظ وأغلق الملف.
لاختبار عملية التجديد ، يمكنك استخدام الأمر certbot متبوعًا
--dry-run
:
sudo certbot renew --dry-run
إذا لم تكن هناك أخطاء ، فهذا يعني أن عملية تجديد الاختبار كانت ناجحة.
استنتاج
في هذا البرنامج التعليمي ، أظهرنا لك كيفية استخدام عميل Let's Encrypt ، certbot لتنزيل شهادات SSL لنطاقك. لقد أنشأنا أيضًا مقتطفات Nginx لتجنب تكرار الشفرة وقمنا بتهيئة Nginx لاستخدام الشهادات. في نهاية البرنامج التعليمي ، قمنا بإعداد cronjob لتجديد الشهادة تلقائيًا.
لمعرفة المزيد حول 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







