常见问题
以下是关于 SSLcat 的常见问题解答,如果您有其他问题,请随时联系我们。
general
SSLcat הוא שרת פרוקסי הפוך SSL ברמה ארגונית בקוד פתוח, כתוב ב-Go. הוא אורז nginx + Caddy + ממשק Web + GitOps לתוך בינארי יחיד: הנפקה וחידוש אוטומטיים של Let's Encrypt, ניתוב חכם לפי דומיין, איזון עומסים, WAF, אירוח אפליקציות Docker / Runner, ולוח ניהול Web מודרני. מגרסה v2.1 הוא גם כולל שרת MCP מובנה כך שלקוחות AI כמו Claude / Cursor יכולים לקרוא לכלים שלו ישירות.
MCP (Model Context Protocol) הוא פרוטוקול פתוח שמחבר לקוחות AI לכלים חיצוניים. מגרסה v2.1, SSLcat עצמו הוא שרת MCP, ונכון ל-v2.3.0-rc1 הוא חושף 22 כלים (CRUD לאתרים / תעודות / מסלולי פרוקסי, בדיקת תקינות upstream, שאילתות משימות ארוכות טווח, ו-`error_log_list` / `error_log_tail` לבדיקת שגיאות אחרונות) בנוסף ל-5 משאבים (תצורה נוכחית מוצנעת, תמונת מצב של מדדי ריצה, זנב יומן גישה, מקורות יומן שגיאות, תוכן יומן שגיאות). הכניסו טוקן ל-Claude Desktop / Cursor / Cherry Studio / Continue.dev וה-AI יוכל להציג רשימת אתרים, להנפיק תעודות, לשנות מסלולים ולבדוק יומני גישה / שגיאות — פעולות הרסניות עדיין עוברות אישור דו-שלבי.
שורה אחת ב-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 (וספקים נוספים) מאפשר הנפקת תעודות wildcard כמו `*.example.com`.
מול nginx: SSLcat כולל לוח ניהול Web, SSL אוטומטי, פריסת GitOps, ניטור בזמן אמת ואבטחה מונעת AI מהקופסה — די לעריכה ידנית של קבצי תצורה. מול Caddy: SSLcat מציע 6 אלגוריתמי איזון עומסים, ניהול רב-משתמשים, פריסה של תמונות Docker ו-Runner, מערכת טוקנים ל-API, הזרמת יומנים חיה מבוססת WebSocket, ומגרסה v2.1 גם את האינטגרציה המובנית עם MCP.
תמיכה מלאה ב-HTTP/1.1, HTTP/2 ו-HTTP/3 (QUIC), עם אכיפת TLS 1.3. חיבורי WebSocket ו-SSE ארוכי טווח מקבלים טיפול מיוחד, ומשימות ACME ארוכות משתמשות בפעימות לב, פטור מ-write-timeout ובידוד מקביליות לכל דומיין כך שהן לא יכולות למשוך זו את זו למטה.
ששה אלגוריתמים מובנים (round-robin, weighted round-robin, least-conn, IP hash, random, fastest-response), בשילוב בדיקות תקינות TCP ודביקות סשן. ניתן לצרף רשימת backends משוקללים ברמת המסלול בדומיין יחיד.
הוסיפו את SSLcat כ-Git remote, ואז הריצו `git push sslcat main` כדי לפרוס — בסגנון Dokku/Heroku. נקודת הכניסה של פריסת Runner היא רב-שכבתית: העלאת תיקייה, העלאת בינארי, משיכת תמונת Docker ישירות, בנייה מ-`git push`, או שימוש בתבנית. כל המסלולים מתכנסים לאותו מפרט Runner מאוחד (משתני סביבה, פורטים, mounts, פקודת הפעלה).
Runner היא שכבת אירוח האפליקציות המובנית של SSLcat. היא יכולה להריץ קונטיינרי Docker, להריץ בינאריים שהועלו, להריץ תמונות שנבנו מ-`git push`, או לפרוס מתבניות. כאשר SSLcat עצמו מופעל מחדש הוא רק מבצע התאמה למצב הקונטיינרים של Runner — הוא לעולם לא מפעיל מחדש את קונטיינרי העסק שלכם, כך שתעבורת ייצור לעולם לא נקטעת בטעות.
התאמת כללי WAF (סריקת גוף הבקשה מוגבלת ל-1 MB כדי לשמור על זיכרון תחום), הגנת DDoS, הגנה מפני brute-force, רשימות חסימה והיתר לפי IP / UA / טביעת אצבע TLS, טוקני API גרנולריים, TOTP MFA, יומני ביקורת, ניהול גרסאות תצורה, ומזהה חריגות AI מבוסס 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 והלאה תוכלו גם לאפס באמצעות קוד שחזור חד-פעמי. כדי ליצור hash של 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())'`.
כתבו את ה-hash אל `admin.password_file` (בדרך כלל `/opt/sslcat/data/admin.pass` או `./data/admin.pass`) עם הרשאה `600`. שחזור באמצעות קובץ סיסמה בדרך כלל לא דורש הפעלה מחדש של SSLcat — ההתחברות הבאה תקרא את ה-hash החדש.
`http://<your-host>:8080/sslcat-panel/`, חשבון ברירת מחדל `admin`, סיסמת ברירת מחדל `admin*9527` (שנו אותה בהתחברות הראשונה). קידומת ה-URL של הניהול ופורט הניהול ניתנים להגדרה.
כן. SSLcat מנפיק תעודות wildcard כגון `*.example.com` באמצעות אתגר DNS-01 של Let's Encrypt. דומיינים wildcard מאולצים אוטומטית ל-DNS-01 ומשתלבים עם AWS Route53 וספקי DNS אחרים לצורך אימות.
הוסיפו דומיין, host יעד ופורט תחת "Sites" בלוח הניהול. כדי להוסיף backends מרובים הפעילו `load_balancer_enabled`, בחרו את האלגוריתם (round_robin / least_conn / ip_hash וכו'), הפעילו בדיקות תקינות ורשמו את ה-backends. תוכלו גם לערוך את תצורת ה-JSON ישירות (SSLcat משתמש ב-JSON, לא ב-YAML).
כן. סדרת v2.0 ממשיכה לחזק מסלולי ייצור: כתיבות אטומיות לתעודות, מפתחות, גרסאות תצורה, טוקנים וסשנים; Stop / Close אידמפוטנטיים בכל רכיב; מטמון upstream בטוח יותר בתנאי מקביליות; WAF בעל תפוקה גבוהה; חיבורים ארוכי טווח של HTTP/2 / HTTP/3 / WebSocket יציבים כסלע. כיוונון אחרון הוריד את צריכת ה-CPU במצב סרק מ-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 token. ראו `docs/mcp-client-setup.md` לקבלת תצורות מלאות הכוללות Cursor, Cherry Studio, Continue.dev וניפוי באגים ב-curl.
כן. כל כלי הרסני משתמש באישור דו-שלבי: הקריאה הראשונה מחזירה תצוגה מקדימה מסוג dry-run עם מידע על השפעה (לדוגמה, `cert_delete` מסמן האם התעודה מקושרת לכלל פרוקסי וכמה ימים נותרו; `proxy_route_delete` מציג קידומות ו-backends) בנוסף ל-`confirm_token` עם TTL של 60 שניות. ה-AI חייב להעביר את הטוקן בארגומנט `confirm` של קריאה שנייה כדי לבצע בפועל. טוקנים קשורים ל-(token_name, tool, args hash), ולכן לא ניתן להשתמש בהם מחדש בין כלים או ארגומנטים שונים.
Isolation Forest מובנה ב-SSLcat. `RequestSampler` חולץ תכונות מכל בקשה אמיתית לתוך מאגר טבעתי בעל 5,000 משבצות; האימון מושך דגימות ישירות מהטבעת ושומר את היער כ-JSON תחת `${data_dir}/ml/isolation_forest.json` (נטען אוטומטית בהפעלה הבאה). הסקות נוחתות במאגר טבעתי בעל 200 משבצות, כך שכרטיסיית "זיהויים אחרונים" בלוח הניהול משקפת תעבורה אמיתית, ולא נתוני mock קשיחים.
Linux (כל ההפצות העיקריות), macOS ו-Windows; מתפרסמים בינאריים גם ל-amd64 וגם ל-arm64. אנו ממליצים להריץ את SSLcat תחת systemd ב-Linux לייצור.
מינימום: 512 MB זיכרון RAM, 100 MB דיסק. מומלץ: 2 GB זיכרון RAM, 1 GB דיסק. בנייה ממקור דורשת Go 1.21+.
בכולם. WebSocket מועבר באופן שקוף ל-upstream; SSE על HTTP/2 / HTTP/3 מכוונן כך ש-write timeouts לא יכולים להרוג זרמים ארוכים; אתרי PHP עובדים דרך backend מסוג FastCGI.
לוח הניהול קורא יומנים עם tailing תחום (קבצי יומן גדולים לעולם לא נמשכים לזיכרון). תוכלו גם לבצע tail ישירות לקובץ היומן המוגדר. דרך MCP, לקוחות AI יכולים להביא את הזנב באמצעות משאב כמו `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` מריץ בדיקה עצמית במכה אחת על תצורה, פורטים, ספריית תעודות, שורשי אתרים, upstreams ומצב טוקני MCP. 2) `sslcat status --json` מדפיס גרסה, פרמטרי האזנה, וסיכום אתרים / תעודות / MCP. 3) קראו את יומן השגיאות של SSLcat ואת `${data_dir}/mcp_audit.YYYYMMDD.log`, או תנו ל-AI לקרוא אותם דרך כלי ה-MCP `error_log_list` / `error_log_tail` (מכסה את SSLcat עצמו בנוסף לכל אתר proxy / static / php). 4) `sslcat proxy health-check --domain foo.com --include-routes --json` בודק את ה-backend הראשי ואת כל ה-backends של PathPrefixRule במקביל. 5) השרת חושף את הגרסה שלו דרך כותרות התגובה `X-App-Version` / `X-Server-Version` כך שתוכלו לוודא איזו תמונה בפועל משרתת תעבורה.
v2.2.0-rc1 מוסיף פקודות תפעול ב-CLI: `sslcat status [--json]` (סיכום ריצה), `sslcat doctor [--json]` (בדיקה עצמית על תצורה / פורטים / תעודות / שורשי אתרים / upstreams / טוקני MCP), `sslcat site list/add/update/delete/enable/disable` (CRUD לאתרי static ו-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}` כך שלקוחות AI יכולים להציג ולקרוא שגיאות אחרונות מ-SSLcat עצמו ומאתרים בודדים. מתחת למכסה המנוע, `internal/mcp/logview` הוא קורא יומנים תחום (ברירת מחדל ל-1 MB האחרונים, מקסימום 4 MB) כך שקבצי יומן גדולים לא יכולים לחסום את מסלול הבקשה.
כבר שוחרר: אינטגרציית MCP מלאה P1–P5 (v2.1.0), פקודות תפעול ובדיקה עצמית ב-CLI (v2.2.0-rc1), קריאת יומן שגיאות ב-MCP בנוסף לקורא היומנים התחום (v2.3.0-rc1). מתוכנן: אינטגרציה עם Kubernetes, תמיכה ב-multi-cluster, אסטרטגיות מטמון מתקדמות, מערכת תוספים, ו-API מסוג GraphQL.
MIT. קוד, issues ושחרורי גרסאות כולם נמצאים ב-GitHub: https://github.com/xurenlu/sslcat . issues, PRs ומקרי שימוש נוספים תחת `docs/` יתקבלו בברכה רבה.
没有找到您要的答案?
如果您有其他问题或需要技术支持,请通过以下方式联系我们:
📧 邮箱: xurenlu@gmail.com
💬 GitHub Issues:github.com/xurenlu/sslcat/issues