[{"data":1,"prerenderedAt":183},["ShallowReactive",2],{"seo-verification":3,"blog-شهادات-ssl-مجانية-باستخدام-lets-encrypt-على-خادم-vps-ma-ar":6,"promo-bar-likely":182},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-شهادات-ssl-مجانية-باستخدام-lets-encrypt-على-خادم-vps-ma-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":122,"ctaBody":123,"ctaButton":124,"ctaUrl":125,"relatedPosts":126},116,"شهادات-ssl-مجانية-باستخدام-lets-encrypt-على-خادم-vps",{"fr":12,"en":13,"ar":10,"es":14},"certificats-ssl-lets-encrypt-vps","free-ssl-certificates-with-lets-encrypt-on-a-vps","certificados-ssl-gratis-con-lets-encrypt-en-un-vps","شهادات SSL مجانية باستخدام Let's Encrypt على خادم VPS","دليل شامل لـ Let's Encrypt على VPS: certbot nginx، wildcard عبر DNS-01، تجديد systemd، تصليب TLS، استكشاف أخطاء rate-limits ومقارنة certbot مقابل acme.sh مقابل Caddy.",8,0,false,"2026-02-24T00:00:00+00:00","2026-09-30T11:20:34+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[28],{"id":17,"name":23,"slug":24,"color":25,"icon":26},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fcertificats-ssl-lets-encrypt-vps-poster.svg","لم يعُد HTTPS خيارًا: فالمتصفحات وتحسين محركات البحث (SEO) والعملاء يفرضونه. وعلى خادم VPS تتحكّم فيه من طرف إلى طرف، يُصدر Let's Encrypt شهادات معترفًا بها ومجانية وتُجدَّد من تلقاء نفسها. يغطّي هذا الدليل تثبيت certbot خطوة بخطوة مع Nginx، وشهادات wildcard عبر Cloudflare DNS challenge، والتحقق من التجديد التلقائي بمؤقّت systemd، ومراقبة الانتهاء، وأكثر الأخطاء شيوعًا — حدود معدل ACME، المنفذ 80 محجوب، انتشار DNS.",[34,38,48,51,67,70,73,76,79,118],{"type":35,"title":36,"body":37},"h2","لماذا تدير Let's Encrypt بنفسك على خادم VPS","Let's Encrypt هي سلطة إصدار شهادات مجانية تُصدر شهادات TLS مُتحقَّقًا منها عبر تحدٍّ مؤتمت (HTTP-01 أو DNS-01). فعلى استضافة مشتركة، أنت خاضع لتهيئة TLS الخاصة بالمزوّد: إصدارات بروتوكول مفروضة، ولا OCSP stapling، وتجديد مبهم. أما على خادم VPS، فأنت تملك `certbot` (أو `acme.sh`) والوكيل العكسي وإنهاء TLS. أنت من يقرّر البروتوكولات (TLS 1.2\u002F1.3 فقط)، ومجموعات التشفير، وHSTS، وربط شهادة OCSP (stapling). ويمكنك أيضًا إصدار شهادة **wildcard** (`*.your-domain.com`) عبر تحدّي DNS-01، وتغطية عدة نطاقات في شهادة واحدة (SAN)، وربط التجديد بتنبيهاتك الخاصة. باختصار: تحكّم كامل في أمن النقل، وهو شرط لتقييم A+ على SSL Labs ولأقصى درجة ثقة من جانب المتصفح.",{"type":39,"title":40,"items":41},"ul","ما الذي تكسبه باستضافة سلسلة TLS ذاتيًا",[42,43,44,45,46,47],"شهادات مجانية 100%، صالحة 90 يومًا وتُجدَّد تلقائيًا دون تدخّل.","شهادة wildcard `*.your-domain.com` ممكنة عبر تحدّي DNS-01: شهادة واحدة لجميع نطاقاتك الفرعية.","تحكّم كامل في التهيئة: TLS 1.3، ومجموعات تشفير حديثة، وHSTS، وOCSP stapling.","شهادات SAN متعددة النطاقات (`your-domain.com` و`www.your-domain.com` و`api.your-domain.com`) على عنوان IP واحد.","تجديد قابل للبرمجة والمراقبة: خطّافات إعادة التحميل، وتنبيهات Slack\u002Fبريد إلكتروني قبل انتهاء الصلاحية.","لا اعتماد على لوحة طرف ثالث: الوصفة نفسها تعمل على جميع خوادمك VPS وبيئاتك.",{"type":35,"title":49,"body":50},"متطلبات مسبقة واقعية","يستهلك إنهاء TLS موارد قليلة جدًا: فخادم VPS بـ **1 vCPU \u002F 512 ميغابايت إلى 1 غيغابايت من RAM** يكفي وأكثر لتقديم HTTPS لموقع واحد أو عدة مواقع.\n\nمن ناحية الشبكة: يجب أن **يُشير اسم نطاقك إلى عنوان IP العام للخادم** (سجلّ A\u002FAAAA منتشر). تحقّق من الانتشار قبل تشغيل certbot: يجب أن يُرجع `dig +short your-domain.com` عنوان IP الخاص بخادمك. تحدٍّ يفشل بسبب انتشار DNS غير مكتمل يُحسب كمحاولة ويقرّبك من حدود معدل ACME.\n\n**المنفذان 80 و443 مفتوحان** في جدار الحماية — المنفذ 80 ضروري لتحدّي HTTP-01:\n```bash\nufw allow 80\u002Ftcp\nufw allow 443\u002Ftcp\nufw reload\n```\n\nلشهادة **wildcard** (`*.your-domain.com`)، لا يكفي تحدّي HTTP-01: جهّز وصولًا عبر واجهة برمجة (API) إلى مزوّد DNS الخاص بك (رمز token) لأتمتة تحدّي DNS-01.",{"type":52,"title":53,"steps":54},"steps","تثبيت certbot والحصول على شهادة Nginx",[55,58,61,64],{"title":56,"body":57},"تثبيت certbot وإضافة Nginx","على Debian\u002FUbuntu:\n```bash\napt update\napt install -y certbot python3-certbot-nginx\n```\nتقرأ إضافة `python3-certbot-nginx` إعداد Nginx الخاص بك، وتحقن تهيئة TLS وتستبدل التوجيه `listen 80` بكتلة `443 ssl`. إذا كنت تُفضّل التحكّم اليدوي في Nginx، استخدم `--standalone` أو `--webroot` بدلًا من `--nginx`.",{"title":59,"body":60},"توجيه النطاق وفتح المنافذ","أنشئ سجلّ A باسم `your-domain.com` (وسجلّ AAAA إن كان IPv6) يُشير إلى عنوان IP الخاص بالخادم، ثم اسمح بحركة الويب:\n```bash\nufw allow 80,443\u002Ftcp\n```\nأكِّد التحويل (resolution) عبر `dig +short your-domain.com` قبل المضي أبعد — فالتحدّي يفشل دائمًا إذا لم يكن DNS يُشير بعد.",{"title":62,"body":63},"إصدار الشهادة مع إضافة Nginx","الطريقة الأكثر مباشرة — يعدّل certbot vhost Nginx الخاص بك ويدير التجديد:\n```bash\ncertbot --nginx -d your-domain.com -d www.your-domain.com\n```\nيطلب certbot عنوان بريد إلكتروني (تنبيهات الانتهاء) ويدعوك لقبول شروط الخدمة. يُصدر الشهادة ويعدّل `\u002Fetc\u002Fnginx\u002Fsites-available\u002F\u003Cvhost>` ويضيف إعادة توجيه HTTP→HTTPS ويُعيد تحميل Nginx دون انقطاع.\n\nتُودَع الملفات في `\u002Fetc\u002Fletsencrypt\u002Flive\u002Fyour-domain.com\u002F`: `fullchain.pem` (الشهادة + السلسلة) و`privkey.pem` (المفتاح الخاص).",{"title":65,"body":66},"التحقق من التجديد التلقائي","يُثبّت certbot **مؤقّت systemd** يحاول التجديد مرتين يوميًا:\n```bash\nsystemctl status certbot.timer\n```\nلمحاكاة تجديد دون إصدار شهادة جديدة:\n```bash\ncertbot renew --dry-run\n```\nإن نجحت المحاكاة، فسلسلة التجديد لديك تعمل. تأكّد من أن Nginx يُعاد تحميله بعد تجديد فعلي — يُضيف certbot تلقائيًا خطّاف `--deploy-hook \"systemctl reload nginx\"` في `\u002Fetc\u002Fletsencrypt\u002Frenewal\u002F\u003Cdomain>.conf` عند استخدام إضافة Nginx.",{"type":35,"title":68,"body":69},"شهادة wildcard مع Cloudflare DNS challenge","تغطّي شهادة `*.your-domain.com` جميع نطاقاتك الفرعية بملف واحد. وهي إلزامية إذا كنت تنشئ نطاقات فرعية ديناميكيًا أو إذا كنت لا تريد إصدار شهادة لكل نطاق فرعي.\n\nلا يستطيع تحدّي HTTP-01 التحقق من wildcard — فأنت بحاجة إلى **تحدّي DNS-01** الذي يطلب من certbot إنشاء سجلّ TXT مؤقت `_acme-challenge.your-domain.com`.\n\n**مع Cloudflare (رمز API token):**\n```bash\napt install -y python3-certbot-dns-cloudflare\n```\nأنشئ ملف بيانات اعتماد Cloudflare (صلاحيات: `600`):\n```bash\nmkdir -p \u002Fetc\u002Fletsencrypt\u002Fcloudflare\nchmod 700 \u002Fetc\u002Fletsencrypt\u002Fcloudflare\ncat > \u002Fetc\u002Fletsencrypt\u002Fcloudflare\u002Fcredentials.ini \u003C\u003C 'EOF'\ndns_cloudflare_api_token = YOUR_CLOUDFLARE_API_TOKEN\nEOF\nchmod 600 \u002Fetc\u002Fletsencrypt\u002Fcloudflare\u002Fcredentials.ini\n```\nأصدر شهادة wildcard:\n```bash\ncertbot certonly \\\n  --dns-cloudflare \\\n  --dns-cloudflare-credentials \u002Fetc\u002Fletsencrypt\u002Fcloudflare\u002Fcredentials.ini \\\n  -d your-domain.com \\\n  -d '*.your-domain.com'\n```\nيُنشئ certbot سجلّ TXT، وينتظر الانتشار (10 ثوانٍ بشكل افتراضي — قابل للزيادة بـ `--dns-cloudflare-propagation-seconds 30`)، يحصل على الشهادة، ثم يحذف سجلّ TXT.\n\n**البديل مع acme.sh:**\n```bash\nacme.sh --issue --dns dns_cf -d your-domain.com -d '*.your-domain.com'\n```\nيستخدم `acme.sh` متغير البيئة `CF_Token` أو `CF_Key` + `CF_Email` بحسب طريقة مصادقة Cloudflare لديك.",{"type":35,"title":71,"body":72},"تحصين TLS في Nginx: TLS 1.2\u002F1.3 وHSTS ومجموعات التشفير","تُهيّئ إضافة certbot HTTPS وظيفيًا، لكن الإعداد الافتراضي ليس مثاليًا للحصول على تقييم A+ على SSL Labs. إليك التوجيهات التي يجب إضافتها في كتلة `server` (أو في ملف مُدرَج مثل `\u002Fetc\u002Fnginx\u002Fsnippets\u002Fssl-params.conf`):\n```bash\n# البروتوكولات: TLS 1.2 كحد أدنى، TLS 1.3 موصى به\nssl_protocols TLSv1.2 TLSv1.3;\n\n# مجموعات تشفير حديثة (Mozilla Intermediate)\nssl_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;\nssl_prefer_server_ciphers off;\n\n# جلسة TLS\nssl_session_timeout 1d;\nssl_session_cache shared:SSL:10m;\nssl_session_tickets off;\n\n# OCSP Stapling\nssl_stapling on;\nssl_stapling_verify on;\nresolver 1.1.1.1 8.8.8.8 valid=300s;\nresolver_timeout 5s;\n\n# HSTS (6 أشهر، مع النطاقات الفرعية، preload)\nadd_header Strict-Transport-Security \"max-age=15768000; includeSubDomains; preload\" always;\n\n# رؤوس أمان إضافية\nadd_header X-Frame-Options DENY;\nadd_header X-Content-Type-Options nosniff;\n```\nوجّه كل المنفذ 80 إلى 443 في كتلة `server` منفصلة:\n```bash\nserver {\n    listen 80;\n    server_name your-domain.com www.your-domain.com;\n    return 301 https:\u002F\u002F$host$request_uri;\n}\n```\nأعِد التحميل دون انقطاع: `nginx -s reload`. ثم اختبر على \u003Ca href=\"https:\u002F\u002Fwww.ssllabs.com\u002Fssltest\u002F\">SSL Labs\u003C\u002Fa> — يجب أن تحصل على A+.",{"type":35,"title":74,"body":75},"مراقبة انتهاء صلاحية الشهادات","قد يفشل التجديد التلقائي بصمت: مؤقّت systemd معطَّل، المنفذ 80 محجوب بعد تعديل جدار الحماية، رمز API Cloudflare مُلغى... شهادة منتهية الصلاحية في الإنتاج تُوقف الخدمة لجميع زوّارك.\n\n**التحقق اليدوي:**\n```bash\necho | openssl s_client -connect your-domain.com:443 -servername your-domain.com 2>\u002Fdev\u002Fnull \\\n  | openssl x509 -noout -dates\n```\n\n**سكربت تنبيه بالبريد الإلكتروني (للوضع في cron أو systemd):**\n```bash\n#!\u002Fbin\u002Fbash\n# تنبيه إذا كانت الشهادة تنتهي خلال أقل من 14 يومًا\ncert_file=\"\u002Fetc\u002Fletsencrypt\u002Flive\u002Fyour-domain.com\u002Ffullchain.pem\"\nif ! openssl x509 -checkend 1209600 -noout -in \"$cert_file\" 2>\u002Fdev\u002Fnull; then\n  echo \"تنبيه: شهادة your-domain.com تنتهي خلال أقل من 14 يومًا\" \\\n    | mail -s \"[SSL] انتهاء وشيك\" admin@your-domain.com\nfi\n```\n`-checkend 1209600` يُقابل 14 يومًا بالثواني (14 × 86400).\n\n**مع Uptime Kuma:** أضف مراقبًا من نوع «Certificate Expiry» يُنبّه قبل 14 يومًا — دون الحاجة لصيانة أي سكربت.",{"type":35,"title":77,"body":78},"استكشاف الأخطاء: حدود المعدل، المنفذ 80 محجوب، انتشار DNS","**حدود معدل ACME «too many certificates already issued»**\nيُحدّد Let's Encrypt بـ 5 شهادات لكل نطاق قابل للتسجيل أسبوعيًا. إذا وصلت إلى هذا الحد أثناء الاختبار، انتقل إلى بيئة **staging**:\n```bash\ncertbot --nginx --staging -d your-domain.com\n```\nتُصدر بيئة staging شهادات غير موثوقة من المتصفحات، لكن دون حدود معدل. بمجرد التحقق من إعدادك، احذف شهادة staging وأعِد الإصدار في الإنتاج.\n\n**المنفذ 80 محجوب**\nيتطلب تحدّي HTTP-01 أن يصل Let's Encrypt إلى `http:\u002F\u002Fyour-domain.com\u002F.well-known\u002Facme-challenge\u002F`. تحقق:\n```bash\ncurl -I http:\u002F\u002Fyour-domain.com\u002F.well-known\u002Facme-challenge\u002Ftest\n# المتوقع: 404 (المسار موجود، الملف لا يوجد بعد)\nufw status | grep 80\n```\nإذا كان المنفذ 80 محجوبًا بجدار حماية علوي (مزوّد سحابي، Cloudflare في وضع proxy)، افتحه مؤقتًا أو انتقل إلى تحدّي DNS-01.\n\n**Cloudflare proxy نشط**\nإذا كان نطاقك خلف Cloudflare (أيقونة السحابة البرتقالية)، تأكّد أن وضع SSL في Cloudflare هو **Full (Strict)** — في وضع Flexible، يتواصل Cloudflare مع خادمك عبر HTTP وnginx الذي يُعيد توجيه HTTP→HTTPS يُنتج حلقة لا نهاية لها (HTTP 525\u002F526).\n\n**انتشار DNS غير كافٍ**\nلتحدّي DNS-01، انتظر 60 ثانية على الأقل بعد إنشاء سجلّ TXT قبل إعادة تشغيل certbot. تحقق:\n```bash\ndig TXT _acme-challenge.your-domain.com +short\n```\nإذا لم تظهر القيمة بعد، انتظر قبل المحاولة مجددًا.",{"type":80,"title":81,"headers":82,"rows":87},"comparison","مقارنة: certbot مقابل acme.sh مقابل Caddy HTTPS التلقائي",[83,84,85,86],"المعيار","certbot","acme.sh","Caddy (HTTPS تلقائي)",[88,93,98,103,108,113],[89,90,91,92],"التثبيت","`apt install certbot`","سكربت bash، لا تبعيات نظام","ملف ثنائي واحد، مُدمج",[94,95,96,97],"تكامل Nginx\u002FApache","إضافة أصلية (`--nginx`، `--apache`)","خطّافات `--install-cert` يدوية","يدير وكيله العكسي الخاص",[99,100,101,102],"Wildcard DNS-01","عبر إضافة DNS (`python3-certbot-dns-*`)","أصلي، مزودي DNS متعددون مُدمجون","عبر وحدة `tls.dns.*` (Caddy v2)",[104,105,106,107],"التجديد","مؤقّت systemd (تلقائي)","مهمة cron تُنشأ عند التثبيت","أصلي، دون إعداد",[109,110,111,112],"منحنى التعلم","منخفض — أوامر بديهية","متوسط — خيارات كثيرة","منخفض جدًا — Caddyfile مبسَّط",[114,115,116,117],"حالة الاستخدام المثالية","خادم Nginx\u002FApache مخصص قائم","بيئات معقدة، مزودو DNS متعددون","مشاريع جديدة، وكيل عكسي مُدمج",{"type":119,"title":120,"body":121},"tip","الاختبار قبل الإنتاج","قبل الانتقال إلى الإنتاج، اختبر مقابل بيئة **staging** الخاصة بـ Let's Encrypt (`--staging` مع Certbot، و`--server letsencrypt_test` مع acme.sh): فحدّ الإنتاج هو 5 إصدارات لكل نطاق أسبوعيًا، وقد يجعلك سكربت سيّئ الضبط تبلغه بسرعة.\n\nأضِف أيضًا **مراقبة انتهاء الصلاحية**: مسبار (probe) ينفّذ `openssl x509 -checkend 604800` (7 أيام) ويُطلق تنبيهًا إذا فشل التجديد التلقائي بصمت — فمهمة cron معطَّلة هي السبب الأول لانتهاء صلاحية HTTPS في جوف الليل.\n\nراجع \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcertbot\u002Fcertbot\">صفحة الإصدارات certbot على GitHub\u003C\u002Fa> للتحقق من الإصدار المتاح قبل كتابة برنامج تعليمي أو سكربت تثبيت.","انشر خادمك VPS Cloud مع HTTPS جاهز للاستخدام","يأتي قالب VPS Cloud من ServOrbit مع Docker ووكيل عكسي وسلسلة Let's Encrypt المُعدّة مسبقًا: شهادات تُصدَر وتُجدَّد تلقائيًا، وتقييم A+ على SSL Labs منذ أول نشر. ركّز على تطبيقك، لا على تفاصيل TLS.","انشر خادمي VPS Cloud","\u002Fvps-cloud",[127,145,164],{"id":128,"slug":129,"slugs":130,"title":134,"excerpt":135,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":136,"updatedAt":137,"category":138,"categories":139,"featuredImage":29,"bgImage":30,"posterImage":141,"relatedSolution":142},105,"مراقبة-خادمك-الافتراضي-vps-باستخدام-uptime-kuma",{"fr":131,"en":132,"ar":129,"es":133},"superviser-vps-uptime-kuma","monitoring-your-vps-with-uptime-kuma","supervisar-vps-con-uptime-kuma","مراقبة خادمك الافتراضي VPS باستخدام Uptime Kuma","انشر Uptime Kuma على خادمك الافتراضي VPS لمراقبة مواقعك وخدماتك ذاتيًا، مع تنبيهات وصفحة حالة عامة.","2026-03-07T00:00:00+00:00","2026-11-09T20:55:19+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[140],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fsuperviser-vps-uptime-kuma-poster.svg",{"categorySlug":143,"appSlug":144},"المراقبة-وقابلية-الرصد","uptime-kuma",{"id":146,"slug":147,"slugs":148,"title":152,"excerpt":153,"readTime":154,"views":155,"isPinned":19,"noindex":19,"publishedAt":156,"updatedAt":157,"category":158,"categories":159,"featuredImage":29,"bgImage":30,"posterImage":161,"relatedSolution":162},106,"مراقبة-الخادم-الافتراضي-vps-باستخدام-grafana-و-prometheus",{"fr":149,"en":150,"ar":147,"es":151},"monitoring-vps-grafana-prometheus","vps-monitoring-with-grafana-and-prometheus","monitorizacion-vps-grafana-prometheus","مراقبة VPS باستخدام Grafana وPrometheus","انشر Prometheus 3.x وGrafana 13.x وNode Exporter وAlertmanager على خادمك VPS بـ Docker Compose. لوحات معلومات وتنبيهات وتصليب.",11,1,"2026-03-06T00:00:00+00:00","2026-10-05T14:05:27+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[160],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fmonitoring-vps-grafana-prometheus-poster.svg",{"categorySlug":143,"appSlug":163},"grafana",{"id":165,"slug":166,"slugs":167,"title":171,"excerpt":172,"readTime":173,"views":155,"isPinned":19,"noindex":19,"publishedAt":174,"updatedAt":175,"category":176,"categories":177,"featuredImage":29,"bgImage":30,"posterImage":179,"relatedSolution":180},107,"راقب-خادمك-الافتراضي-vps-في-الوقت-الفعلي-باستخدام-netdata",{"fr":168,"en":169,"ar":166,"es":170},"monitorer-vps-netdata","monitor-your-vps-in-real-time-with-netdata","monitorizar-vps-en-tiempo-real-con-netdata","راقب خادمك الافتراضي VPS في الوقت الفعلي باستخدام Netdata","ثبّت Netdata على خادمك الافتراضي VPS للحصول على مراقبة لحظية بدقة الثانية: آلاف المقاييس، دون أي إعداد، مع تنبيهات مضمّنة.",3,"2026-03-05T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[178],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fmonitorer-vps-netdata-poster.svg",{"categorySlug":143,"appSlug":181},"netdata",true,1794270288245]