常见问题
以下是关于 SSLcat 的常见问题解答,如果您有其他问题,请随时联系我们。
general
SSLcat هو خادم وكيل عكسي SSL مفتوح المصدر وعلى مستوى المؤسسات مكتوب بلغة Go. يجمع nginx + Caddy + واجهة Web + GitOps في ثنائي واحد: إصدار وتجديد تلقائي عبر Let's Encrypt، توجيه ذكي للنطاقات، موازنة حمل، WAF، استضافة تطبيقات Docker / Runner، ولوحة إدارة Web حديثة. منذ الإصدار v2.1 يأتي أيضًا مع خادم MCP مدمج حتى يتمكن Claude / Cursor وعملاء الذكاء الاصطناعي الآخرون من استدعاء أدواته مباشرة.
MCP (Model Context Protocol) هو بروتوكول مفتوح يربط عملاء الذكاء الاصطناعي بالأدوات الخارجية. منذ الإصدار v2.1 أصبح SSLcat نفسه خادم MCP، واعتبارًا من v2.3.0-rc1 فهو يكشف 22 أداة (عمليات CRUD لمسارات الموقع / الشهادة / الوكيل، فحص صحة المصادر العلوية، استعلامات المهام طويلة المدى، و`error_log_list` / `error_log_tail` لفحص الأخطاء الأخيرة) إضافةً إلى 5 موارد (الإعداد الحالي مع إخفاء البيانات الحساسة، لقطة لمقاييس وقت التشغيل، ذيل سجل الوصول، مصادر سجل الأخطاء، محتوى سجل الأخطاء). أضف رمزًا في Claude Desktop / Cursor / Cherry Studio / Continue.dev وسيتمكن الذكاء الاصطناعي من سرد المواقع وإصدار الشهادات وتغيير المسارات وفحص سجلات الوصول والأخطاء — مع بقاء العمليات التدميرية خاضعة لتأكيد من مرحلتين.
سطر واحد على macOS / Linux: `curl -fsSL https://raw.githubusercontent.com/xurenlu/sslcat/main/install.sh | bash`. كما يمكنك تنزيل الثنائيات من صفحة GitHub Releases (linux-amd64 / linux-arm64 / darwin-arm64 / darwin-amd64). تتوفر الوثائق الكاملة ضمن `docs/` وعلى الموقع الرسمي.
نعم. يتكامل SSLcat مع Let's Encrypt (ACME). يؤدي إضافة نطاق إلى إصدار تلقائي، وتُجدَّد الشهادات قبل 30 يومًا من انتهاء صلاحيتها دون انقطاع للخدمة. كلتا تحديتي HTTP-01 وDNS-01 مدعومتان؛ وDNS-01 مع AWS Route53 (ومزودين آخرين) يعني أنه يمكنك إصدار شهادات شاملة مثل `*.example.com`.
مقارنةً بـ nginx: يأتي SSLcat بلوحة إدارة Web، SSL تلقائي، نشر GitOps، مراقبة في الزمن الفعلي، وأمان مدفوع بالذكاء الاصطناعي جاهزًا للاستخدام — لا حاجة بعد الآن إلى تحرير ملفات الإعداد يدويًا. مقارنةً بـ Caddy: يوفر SSLcat 6 خوارزميات لموازنة الحمل، إدارة متعددة المستخدمين، نشر صور Docker وRunner، نظام رموز API، بثًا مباشرًا للسجلات عبر WebSocket، ومنذ v2.1 تكامل MCP المدمج.
دعم كامل لـ HTTP/1.1 وHTTP/2 وHTTP/3 (QUIC)، مع فرض TLS 1.3. تتلقى اتصالات WebSocket وSSE طويلة الأمد معالجة خاصة، وتستخدم مهام ACME الطويلة نبضات قلب، واستثناءات من مهلة الكتابة، وعزل تزامن لكل نطاق، حتى لا تُعطّل بعضها بعضًا.
ست خوارزميات مدمجة (round-robin، round-robin موزون، least-conn، IP hash، عشوائي، أسرع استجابة)، مدمجة مع فحوصات صحة TCP وثبات الجلسة. يمكنك إرفاق قائمة من الخلفيات الموزونة على مستوى المسار في نطاق واحد.
أضف SSLcat كمصدر Git بعيد، ثم نفِّذ `git push sslcat main` للنشر — بأسلوب Dokku/Heroku. نقطة دخول النشر عبر Runner متعددة الطبقات: ارفع دليلًا، ارفع ثنائيًا، اسحب صورة Docker مباشرة، ابنِ من `git push`، أو استخدم قالبًا. كل المسارات تتقارب في نفس مواصفات Runner الموحَّدة (متغيرات البيئة، المنافذ، نقاط الربط، أمر التشغيل).
Runner هو طبقة استضافة التطبيقات المدمجة في SSLcat. يمكنه تشغيل حاويات Docker، تشغيل ثنائيات مرفوعة، تشغيل صور مبنية من `git push`، أو النشر من قوالب. عندما يُعاد تشغيل SSLcat نفسه فإنه يوفّق فقط حالة حاويات Runner — ولا يعيد تشغيل حاويات أعمالك أبدًا، لذا لن يُعاد توجيه حركة الإنتاج عن طريق الخطأ.
مطابقة قواعد WAF (مع تحديد فحص جسم الطلب بـ 1 ميغابايت للحفاظ على الذاكرة محدودة)، حماية من DDoS، مكافحة هجمات التخمين، قوائم حجب / سماح حسب IP / UA / بصمة TLS، رموز API دقيقة، MFA عبر TOTP، سجلات تدقيق، إدارة إصدارات الإعداد، وكاشف شذوذ بالذكاء الاصطناعي قائم على Isolation Forest مع تدريب فوري وحفظ النموذج بصيغة JSON واستنتاج على حركة المرور الحقيقية.
يُفضَّل استخدام أمر إعادة التعيين المدمج: `sslcat users password -username admin -new-password 'NewStrongPass123!'`. من شجرة المصدر يمكنك أيضًا تنفيذ: `go run tools/cmd/reset_password/main.go admin 'NewStrongPass123!'`.
بدءًا من v2.0.0-rc22 وما بعده يمكنك أيضًا إعادة التعيين باستخدام رمز استرداد لمرة واحدة. لتوليد هاش bcrypt يدويًا باستخدام Ruby: ثبِّت bcrypt عبر `gem install bcrypt`، ثم نفِّذ `SSL_PASS='NewStrongPass123!' ruby -rbcrypt -e 'puts BCrypt::Password.create(ENV.fetch("SSL_PASS"), cost: 10)'`.
باستخدام Python: `python3 -m pip install bcrypt`، ثم `SSL_PASS='NewStrongPass123!' python3 -c 'import bcrypt, os; print(bcrypt.hashpw(os.environ["SSL_PASS"].encode(), bcrypt.gensalt(rounds=10)).decode())'`.
اكتب الهاش إلى `admin.password_file` (عادةً `/opt/sslcat/data/admin.pass` أو `./data/admin.pass`) بصلاحيات `600`. عادةً لا يتطلب الاسترداد عبر ملف كلمة المرور إعادة تشغيل SSLcat — فالتسجيل التالي يقرأ الهاش الجديد.
`http://<your-host>:8080/sslcat-panel/`، الحساب الافتراضي `admin`، وكلمة المرور الافتراضية `admin*9527` (غيِّرها عند أول تسجيل دخول). كل من بادئة رابط الإدارة ومنفذ الإدارة قابلان للإعداد.
نعم. يُصدر SSLcat شهادات شاملة مثل `*.example.com` عبر تحدي DNS-01 الخاص بـ Let's Encrypt. تُجبَر النطاقات الشاملة على استخدام DNS-01 تلقائيًا، وتتكامل مع AWS Route53 ومزودي DNS آخرين للتحقق.
أضف النطاق والمضيف الهدف والمنفذ ضمن "المواقع" في لوحة الإدارة. لإضافة عدة خلفيات فعِّل `load_balancer_enabled`، اختر الخوارزمية (round_robin / least_conn / ip_hash إلخ)، فعِّل فحوصات الصحة، واسرد الخلفيات. كما يمكنك تحرير إعداد JSON مباشرةً (يستخدم SSLcat صيغة JSON وليس YAML).
نعم. تواصل سلسلة v2.0 تعزيز مسارات الإنتاج: كتابات ذرية للشهادات والمفاتيح وإصدارات الإعداد والرموز والجلسات؛ Stop / Close idempotent على كل مكون؛ تخزين مؤقت أكثر أمانًا للمصادر العلوية تحت التزامن؛ WAF عالي الإنتاجية؛ اتصالات HTTP/2 / HTTP/3 / WebSocket طويلة الأمد متينة. خفضت عمليات الضبط الأخيرة استخدام المعالج في وضع الخمول من 50–100% إلى أقل من 1%، وإعدادات Runner المتعددة بنحو 97%.
1) فعِّل MCP: `sslcat mcp enable`. 2) أنشئ رمزًا: `sslcat mcp token create --name claude-desktop --scopes read,site:write,cert:write`. يُعرض الرمز بصيغته النصية مرة واحدة فقط — احفظه بأمان. 3) أعدّ Claude Desktop باستخدام نقطة نهاية Streamable HTTP (الافتراضي `https://your-domain/sslcat-panel/mcp/stream`) ورمز bearer. راجع `docs/mcp-client-setup.md` للحصول على الإعدادات الكاملة لـ Cursor وCherry Studio وContinue.dev وتصحيح curl.
نعم. تستخدم كل أداة تدميرية تأكيدًا من مرحلتين: تعيد المكالمة الأولى معاينة dry-run مع معلومات الأثر (مثلًا يُشير `cert_delete` إلى ما إذا كانت الشهادة مُستخدَمة في قاعدة وكيل وكم يومًا تبقّى لها؛ ويسرد `proxy_route_delete` البادئات والخلفيات) إضافةً إلى `confirm_token` بصلاحية 60 ثانية. على الذكاء الاصطناعي تمرير هذا الرمز في وسيط `confirm` لمكالمة ثانية كي ينفّذ العملية فعليًا. الرموز مرتبطة بـ (token_name، الأداة، هاش الوسائط)، لذا لا يمكن إعادة استخدامها عبر أدوات أو وسائط مختلفة.
يأتي SSLcat مع Isolation Forest مدمج. يقوم `RequestSampler` باستخراج الميزات من كل طلب حقيقي ووضعها في مخزن حلقي بسعة 5,000 خانة؛ يسحب التدريب العيّنات مباشرةً من المخزن الحلقي ويحفظ الغابة بصيغة JSON تحت `${data_dir}/ml/isolation_forest.json` (تُحمَّل تلقائيًا في التشغيل التالي). تُسجَّل عمليات الاستنتاج في مخزن حلقي بسعة 200 خانة، لذا تعكس علامة التبويب "الاكتشافات الأخيرة" في لوحة الإدارة حركة المرور الحقيقية، وليس بيانات وهمية مكتوبة سلفًا.
Linux (جميع التوزيعات الرئيسية)، macOS، وWindows؛ تُنشَر ثنائيات لـ amd64 وarm64 على حد سواء. نوصي بتشغيل SSLcat تحت systemd على Linux للإنتاج.
الحد الأدنى: 512 ميغابايت RAM، 100 ميغابايت قرص. الموصى به: 2 غيغابايت RAM، 1 غيغابايت قرص. البناء من المصدر يتطلب Go 1.21+.
جميعها. يُمرَّر WebSocket بشفافية إلى المصدر العلوي؛ وSSE على HTTP/2 / HTTP/3 مضبوط حتى لا تقتل مهل الكتابة التدفقات الطويلة؛ ومواقع PHP تعمل عبر خلفية FastCGI.
تقرأ لوحة الإدارة السجلات باستخدام tailing محدود (لا تُسحب ملفات السجل الكبيرة إلى الذاكرة أبدًا). يمكنك أيضًا مراقبة ملف السجل المُعدّ مباشرةً. عبر MCP، يمكن لعملاء الذكاء الاصطناعي جلب الذيل بمورد مثل `sslcat://logs/access?since=10m&domain=foo.com&limit=200`.
يستهدف SSLcat Let's Encrypt جاهزًا للاستخدام — وهو جهة إصدار شهادات عامة مجانية موجودة لجعل HTTPS الافتراضي. لا يزال بإمكانك رفع شهادات تجارية عبر `cert_upload`؛ ويتحقق SSLcat من تحليل PEM وتطابق الشهادة مع المفتاح وتغطية CN/SAN.
1) يُجري `sslcat doctor --json` فحصًا ذاتيًا بأمر واحد للإعداد والمنافذ ودليل الشهادات وجذور المواقع والمصادر العلوية وحالة رمز MCP. 2) يطبع `sslcat status --json` الإصدار ومعاملات الاستماع وملخص الموقع / الشهادة / MCP. 3) اقرأ سجل أخطاء SSLcat و`${data_dir}/mcp_audit.YYYYMMDD.log`، أو دَع الذكاء الاصطناعي يقرأها عبر أدوات MCP `error_log_list` / `error_log_tail` (تشمل SSLcat نفسه إضافةً إلى كل موقع وكيل / ثابت / php). 4) يفحص `sslcat proxy health-check --domain foo.com --include-routes --json` الخلفية الرئيسية وكل خلفية PathPrefixRule بالتوازي. 5) يكشف الخادم إصداره عبر ترويستي الاستجابة `X-App-Version` / `X-Server-Version` حتى تتأكد من الصورة التي تخدم حركة المرور فعلًا.
يضيف v2.2.0-rc1 أوامر عمليات CLI: `sslcat status [--json]` (ملخص وقت التشغيل)، `sslcat doctor [--json]` (فحص ذاتي للإعداد / المنافذ / الشهادات / جذور المواقع / المصادر العلوية / رموز MCP)، `sslcat site list/add/update/delete/enable/disable` (CRUD للمواقع الثابتة وPHP — الحذف يتطلب `--yes` صريحًا)، و`sslcat proxy health-check [--domain] [--include-routes] [--json]` (فحص TCP). يمكن وضع `-config` العام قبل الأمر الفرعي. يضيف v2.3.0-rc1 أداتي MCP `error_log_list` و`error_log_tail`، إضافةً إلى الموردين `sslcat://logs/error-sources` و`sslcat://logs/error{?id,kind,domain,since,keyword,limit,max_bytes}` حتى يتمكن عملاء الذكاء الاصطناعي من سرد وقراءة الأخطاء الأخيرة من SSLcat نفسه ومن المواقع الفردية. تحت الغطاء فإن `internal/mcp/logview` هو قارئ سجل محدود (افتراضيًا آخر 1 ميغابايت، بحد أقصى 4 ميغابايت) حتى لا تحجب ملفات السجل الكبيرة مسار الطلب.
تم تسليمه بالفعل: تكامل MCP الكامل P1–P5 (v2.1.0)، أوامر عمليات CLI والفحص الذاتي (v2.2.0-rc1)، قراءة سجل أخطاء MCP إضافةً إلى قارئ السجل المحدود (v2.3.0-rc1). المخطط له: تكامل Kubernetes، دعم متعدد العناقيد، استراتيجيات تخزين مؤقت متقدمة، نظام إضافات، وواجهة GraphQL.
MIT. الشيفرة والإصدارات والقضايا كلها على GitHub: https://github.com/xurenlu/sslcat . القضايا وطلبات السحب وحالات الاستخدام الإضافية تحت `docs/` مرحَّب بها للغاية.
没有找到您要的答案?
如果您有其他问题或需要技术支持,请通过以下方式联系我们:
📧 邮箱: xurenlu@gmail.com
💬 GitHub Issues:github.com/xurenlu/sslcat/issues