常见问题
以下是关于 SSLcat 的常见问题解答,如果您有其他问题,请随时联系我们。
general
SSLcat เป็นเซิร์ฟเวอร์ SSL reverse proxy ระดับองค์กรแบบโอเพนซอร์สที่เขียนด้วย Go มันรวม nginx + Caddy + Web UI + GitOps ไว้ในไบนารีตัวเดียว: ออกและต่ออายุ Let's Encrypt อัตโนมัติ, การกำหนดเส้นทางโดเมนอัจฉริยะ, load balancing, WAF, การโฮสต์แอปด้วย Docker / Runner และแผงควบคุม Web ที่ทันสมัย ตั้งแต่ v2.1 ยังมาพร้อมเซิร์ฟเวอร์ MCP ในตัว เพื่อให้ Claude / Cursor และไคลเอนต์ AI อื่นๆ เรียกใช้เครื่องมือของมันได้โดยตรง
MCP (Model Context Protocol) เป็นโปรโตคอลแบบเปิดที่เชื่อมต่อไคลเอนต์ AI กับเครื่องมือภายนอก ตั้งแต่ v2.1 SSLcat เองคือเซิร์ฟเวอร์ MCP และตั้งแต่ v2.3.0-rc1 มันเปิดเผย 22 เครื่องมือ (CRUD ของไซต์ / ใบรับรอง / proxy route, การตรวจสอบ health ของ upstream, การสอบถามงานที่ใช้เวลานาน และ `error_log_list` / `error_log_tail` สำหรับตรวจสอบข้อผิดพลาดล่าสุด) พร้อม 5 รีซอร์ส (คอนฟิกปัจจุบันที่ปกปิด, สแน็ปช็อตเมตริกรันไทม์, ส่วนท้ายของ access log, แหล่งของ error log, เนื้อหา error log) ใส่โทเค็นลงใน Claude Desktop / Cursor / Cherry Studio / Continue.dev แล้ว AI สามารถแสดงรายการไซต์ ออกใบรับรอง เปลี่ยนเส้นทาง และตรวจสอบ access / error log ได้ — การกระทำที่เป็นการทำลายยังคงต้องผ่านการยืนยันสองขั้นตอน
บรรทัดเดียวบน 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 วันก่อนหมดอายุโดยไม่มี downtime รองรับทั้ง HTTP-01 และ DNS-01 challenge; DNS-01 บวกกับ AWS Route53 (และผู้ให้บริการอื่นๆ) หมายความว่าคุณสามารถออกใบรับรอง wildcard เช่น `*.example.com` ได้
เทียบกับ nginx: SSLcat มาพร้อมแผงควบคุม Web, SSL อัตโนมัติ, การปรับใช้แบบ GitOps, การมอนิเตอร์เรียลไทม์ และความปลอดภัยที่ขับเคลื่อนด้วย AI พร้อมใช้งานทันที — ไม่ต้องแก้ไขไฟล์คอนฟิกด้วยมืออีกต่อไป เทียบกับ Caddy: SSLcat เสนออัลกอริทึม load balancing 6 แบบ, การจัดการแบบหลายผู้ใช้, การปรับใช้ด้วย Docker image และ Runner, ระบบโทเค็น API, การสตรีม log แบบเรียลไทม์ผ่าน WebSocket และตั้งแต่ v2.1 มีการผสานรวม MCP ในตัว
รองรับ HTTP/1.1, HTTP/2 และ HTTP/3 (QUIC) อย่างเต็มรูปแบบ พร้อมบังคับใช้ TLS 1.3 การเชื่อมต่อ WebSocket และ SSE ที่ยาวนานได้รับการจัดการเป็นพิเศษ และงาน ACME ที่ยาวนานใช้ heartbeat, การยกเว้น write-timeout และการแยกการทำงานพร้อมกันต่อโดเมน เพื่อให้ไม่ดึงกันลง
มีอัลกอริทึมในตัว 6 แบบ (round-robin, weighted round-robin, least-conn, IP hash, random, fastest-response) ผสมผสานกับ health check แบบ TCP และ session stickiness คุณสามารถแนบรายการ backend ที่มีน้ำหนักในระดับเส้นทางบนโดเมนเดียวได้
เพิ่ม SSLcat เป็น Git remote จากนั้นรัน `git push sslcat main` เพื่อปรับใช้ — สไตล์ Dokku/Heroku จุดเข้าการปรับใช้ของ Runner เป็นแบบเลเยอร์: อัปโหลดไดเรกทอรี, อัปโหลดไบนารี, ดึง Docker image โดยตรง, บิลด์จาก `git push` หรือใช้เทมเพลต ทุกเส้นทางบรรจบกันที่ข้อกำหนด Runner แบบรวมเดียวกัน (env vars, พอร์ต, mount, คำสั่งเริ่มต้น)
Runner คือเลเยอร์การโฮสต์แอปในตัวของ SSLcat มันสามารถรัน Docker container, รันไบนารีที่อัปโหลด, รัน image ที่บิลด์จาก `git push` หรือปรับใช้จากเทมเพลต เมื่อ SSLcat เองรีสตาร์ท มันจะปรับสถานะ container ของ Runner เท่านั้น — มันไม่เคยรีสตาร์ท container ธุรกิจของคุณ ดังนั้นทราฟฟิกในการผลิตจะไม่ถูกรบกวนโดยไม่ตั้งใจ
การจับคู่กฎ WAF (การสแกน request body จำกัดที่ 1 MB เพื่อให้หน่วยความจำมีขอบเขต), ป้องกัน DDoS, ป้องกัน brute-force, การบล็อกและไวท์ลิสต์ IP / UA / TLS fingerprint, โทเค็น API แบบละเอียด, TOTP MFA, audit log, การจัดการเวอร์ชันคอนฟิก และตัวตรวจจับความผิดปกติด้วย 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 เป็นต้นไป คุณยังสามารถรีเซ็ตผ่านโค้ดกู้คืนแบบใช้ครั้งเดียวได้ ในการสร้างแฮช 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` (เปลี่ยนตอนล็อกอินครั้งแรก) คำนำหน้า URL ของผู้ดูแลและพอร์ตการจัดการสามารถกำหนดค่าได้ทั้งคู่
ใช่ SSLcat ออกใบรับรอง wildcard เช่น `*.example.com` ผ่าน Let's Encrypt DNS-01 challenge โดเมน wildcard จะถูกบังคับใช้ DNS-01 โดยอัตโนมัติ และจับคู่กับ AWS Route53 และผู้ให้บริการ DNS อื่นๆ สำหรับการตรวจสอบ
เพิ่มโดเมน โฮสต์ปลายทาง และพอร์ตภายใต้ "Sites" ในแผงควบคุมผู้ดูแล ในการเพิ่ม backend หลายตัว ให้เปิดใช้งาน `load_balancer_enabled` เลือกอัลกอริทึม (round_robin / least_conn / ip_hash ฯลฯ) เปิด health check และแสดงรายการ backend คุณยังสามารถแก้ไขคอนฟิก JSON โดยตรงได้ (SSLcat ใช้ JSON ไม่ใช่ YAML)
ใช่ ไลน์ v2.0 ยังคงเสริมความแข็งแกร่งของเส้นทาง production: atomic write สำหรับใบรับรอง, คีย์, เวอร์ชันคอนฟิก, โทเค็น และเซสชัน; Stop / Close ที่ idempotent ในทุกคอมโพเนนต์; การแคช upstream ที่ปลอดภัยกว่าภายใต้ความพร้อมกัน; WAF ที่มี throughput สูง; การเชื่อมต่อ HTTP/2 / HTTP/3 / WebSocket ที่ยาวนานและมั่นคงดั่งหิน การปรับแต่งล่าสุดทำให้ CPU ในสถานะ idle ลดจาก 50–100% ลงเหลือ <1% และการตั้งค่า Runner หลายตัวลดลงประมาณ 97%
1) เปิดใช้งาน MCP: `sslcat mcp enable` 2) สร้างโทเค็น: `sslcat mcp token create --name claude-desktop --scopes read,site:write,cert:write` โทเค็นแบบ plaintext จะแสดงเพียงครั้งเดียว — เก็บไว้อย่างปลอดภัย 3) กำหนดค่า Claude Desktop ด้วย Streamable HTTP endpoint (ค่าเริ่มต้น `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 หรือไม่และเหลือกี่วัน; `proxy_route_delete` จะแสดงคำนำหน้าและ backend) บวกกับ `confirm_token` ที่มี TTL 60 วินาที AI ต้องส่งโทเค็นนั้นกลับมาในอาร์กิวเมนต์ `confirm` ของการเรียกครั้งที่สองเพื่อดำเนินการจริง โทเค็นถูกผูกกับ (token_name, tool, args hash) ดังนั้นไม่สามารถนำกลับมาใช้ซ้ำข้ามเครื่องมือหรืออาร์กิวเมนต์ได้
มี Isolation Forest ในตัว SSLcat `RequestSampler` สกัดคุณลักษณะจากทุกคำขอจริงลงใน ring buffer ขนาด 5,000 ช่อง; การฝึกฝนดึงตัวอย่างตรงจาก ring และคงอยู่ของ forest เป็น JSON ภายใต้ `${data_dir}/ml/isolation_forest.json` (โหลดอัตโนมัติเมื่อเริ่มครั้งถัดไป) การอนุมานจะลงใน ring buffer ขนาด 200 ช่อง ดังนั้นแท็บ "การตรวจจับล่าสุด" ของแผงควบคุมผู้ดูแลจะสะท้อนทราฟฟิกจริง ไม่ใช่ข้อมูล mock ที่ฮาร์ดโค้ด
Linux (distro หลักทั้งหมด), macOS และ Windows; ทั้งไบนารี amd64 และ arm64 ถูกเผยแพร่ เราแนะนำให้รัน SSLcat ภายใต้ systemd บน Linux สำหรับ production
ขั้นต่ำ: RAM 512 MB, ดิสก์ 100 MB แนะนำ: RAM 2 GB, ดิสก์ 1 GB การบิลด์จากซอร์สต้องการ Go 1.21+
ทั้งหมด WebSocket ถูกส่งต่อโดยโปร่งใสไปยัง upstream; SSE บน HTTP/2 / HTTP/3 ถูกปรับแต่งเพื่อให้ write timeout ไม่สามารถฆ่าสตรีมที่ยาวนานได้; ไซต์ PHP ทำงานผ่าน backend FastCGI
แผงควบคุมผู้ดูแลอ่าน log ด้วย tailing ที่มีขอบเขต (ไฟล์ log ขนาดใหญ่จะไม่ถูกดึงเข้าหน่วยความจำ) คุณยังสามารถ tail ไฟล์ log ที่กำหนดค่าโดยตรงได้ ผ่าน MCP ไคลเอนต์ AI สามารถดึง tail ด้วยรีซอร์สเช่น `sslcat://logs/access?since=10m&domain=foo.com&limit=200`
SSLcat มุ่งเป้าที่ Let's Encrypt พร้อมใช้งานทันที — CA สาธารณะฟรีที่มีอยู่เพื่อทำให้ HTTPS เป็นค่าเริ่มต้น คุณยังสามารถอัปโหลดใบรับรองเชิงพาณิชย์ผ่าน `cert_upload` ได้; SSLcat ตรวจสอบการแยกวิเคราะห์ PEM, การจับคู่ cert/key และความครอบคลุม CN/SAN
1) `sslcat doctor --json` รันการตรวจสอบตนเองครั้งเดียวจบครอบคลุมคอนฟิก, พอร์ต, ไดเรกทอรีใบรับรอง, รากของไซต์, upstream และสถานะโทเค็น MCP 2) `sslcat status --json` แสดงเวอร์ชัน, พารามิเตอร์การฟัง และสรุปไซต์ / ใบรับรอง / MCP 3) อ่าน SSLcat error log และ `${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 หลักและทุก backend ของ PathPrefixRule แบบขนาน 5) เซิร์ฟเวอร์เปิดเผยเวอร์ชันผ่าน response header `X-App-Version` / `X-Server-Version` เพื่อให้คุณยืนยันได้ว่า image ใดกำลังให้บริการทราฟฟิกอยู่
v2.2.0-rc1 เพิ่มคำสั่ง CLI ops: `sslcat status [--json]` (สรุปรันไทม์), `sslcat doctor [--json]` (การตรวจสอบตนเองครอบคลุมคอนฟิก / พอร์ต / ใบรับรอง / รากของไซต์ / upstream / โทเค็น MCP), `sslcat site list/add/update/delete/enable/disable` (CRUD สำหรับไซต์ static และ PHP — การลบต้องใช้ `--yes` แบบชัดเจน) และ `sslcat proxy health-check [--domain] [--include-routes] [--json]` (TCP probe) สามารถวาง `-config` แบบ global ก่อนคำสั่งย่อยได้ 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` คือตัวอ่าน log ที่มีขอบเขต (ค่าเริ่มต้นคือ 1 MB ล่าสุด, สูงสุด 4 MB) เพื่อให้ไฟล์ log ขนาดใหญ่ไม่สามารถบล็อกเส้นทางคำขอได้
ที่ส่งมอบแล้ว: การผสานรวม MCP เต็มรูปแบบ P1–P5 (v2.1.0), คำสั่ง CLI ops และการตรวจสอบตนเอง (v2.2.0-rc1), การอ่าน error log ของ MCP บวกกับตัวอ่าน log ที่มีขอบเขต (v2.3.0-rc1) ที่วางแผน: การผสานรวม Kubernetes, การรองรับหลายคลัสเตอร์, กลยุทธ์การแคชขั้นสูง, ระบบปลั๊กอิน และ GraphQL API
MIT โค้ด, issues และ releases ทั้งหมดอยู่บน GitHub: https://github.com/xurenlu/sslcat ยินดีต้อนรับ Issues, PR และกรณีการใช้งานเพิ่มเติมภายใต้ `docs/` อย่างยิ่ง
没有找到您要的答案?
如果您有其他问题或需要技术支持,请通过以下方式联系我们:
📧 邮箱: xurenlu@gmail.com
💬 GitHub Issues:github.com/xurenlu/sslcat/issues