常见问题
以下是关于 SSLcat 的常见问题解答,如果您有其他问题,请随时联系我们。
general
SSLcatはGoで書かれたオープンソースのエンタープライズグレードSSLリバースプロキシサーバーです。nginx + Caddy + Web UI + GitOpsを単一バイナリにまとめており、Let's Encryptの自動発行と更新、スマートなドメインルーティング、負荷分散、WAF、Docker / Runnerアプリホスティング、モダンなWeb管理パネルを備えています。v2.1からはMCPサーバーも内蔵し、Claude / Cursorなどのクライアントから直接ツールを呼び出せます。
MCP(Model Context Protocol)は、AIクライアントを外部ツールに接続するためのオープンプロトコルです。v2.1からSSLcat自身がMCPサーバーとなり、v2.3.0-rc1時点では22個のツール(site / cert / proxy routeのCRUD、アップストリームのヘルスチェック、長時間タスクの照会、最近のエラーを参照する`error_log_list` / `error_log_tail`)と5個のリソース(マスキングされた現在の設定、ランタイムメトリクスのスナップショット、アクセスログの末尾、エラーログソース、エラーログ内容)を公開しています。Claude Desktop / Cursor / Cherry Studio / Continue.devにトークンを設定すれば、AIがサイトの一覧表示、証明書の発行、ルートの変更、アクセス / エラーログの参照を行えます — 破壊的な操作は2段階確認を経る必要があります。
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デプロイ、リアルタイム監視、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タスクはハートビート、書き込みタイムアウトの例外扱い、ドメイン単位の並行性分離によって互いに足を引っ張ることがありません。
6種類のアルゴリズム(ラウンドロビン、重み付きラウンドロビン、最小接続、IPハッシュ、ランダム、最速応答)が組み込まれており、TCPヘルスチェックとセッションスティッキーと組み合わさります。単一ドメインのルートレベルで、重み付きバックエンドのリストをアタッチできます。
SSLcatをGitリモートとして追加し、`git push sslcat main`でデプロイ — Dokku/Heroku風です。Runnerのデプロイ入口は階層化されており、ディレクトリのアップロード、バイナリのアップロード、Dockerイメージの直接pull、`git push`からのビルド、テンプレートの利用が可能です。すべての経路は同じ統一Runner仕様(環境変数、ポート、マウント、起動コマンド)に収束します。
RunnerはSSLcat内蔵のアプリホスティング層です。Dockerコンテナの実行、アップロードされたバイナリの実行、`git push`からビルドしたイメージの実行、テンプレートからのデプロイが可能です。SSLcat自身が再起動するときも、調整するのはRunnerコンテナの状態のみで、業務コンテナを再起動することはなく、本番トラフィックが意図せず止まることもありません。
WAFルールマッチング(メモリを抑えるためリクエストボディスキャンは1 MBに制限)、DDoS防御、ブルートフォース対策、IP / UA / TLSフィンガープリントのブロック/ホワイトリスト、きめ細かなAPIトークン、TOTP MFA、監査ログ、設定バージョン管理、そしてオンライン学習・JSONモデル永続化・実トラフィック推論を行うIsolation ForestベースのAI異常検知。
内蔵のリセットコマンドを優先してください:`sslcat users password -username admin -new-password 'NewStrongPass123!'`。ソースツリーからは次のコマンドも使えます:`go run tools/cmd/reset_password/main.go admin 'NewStrongPass123!'`。
v2.0.0-rc22以降は使い切りリカバリーコードによるリセットも可能です。Rubyでbcryptハッシュを手動生成するには、`gem install bcrypt`で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はLet's EncryptのDNS-01チャレンジを介して`*.example.com`のようなワイルドカード証明書を発行します。ワイルドカードドメインは自動的にDNS-01に切り替えられ、AWS Route53などのDNSプロバイダと組み合わせて検証されます。
管理パネルの「Sites」でドメイン、ターゲットホスト、ポートを追加します。複数のバックエンドを追加するには`load_balancer_enabled`を有効化し、アルゴリズム(round_robin / least_conn / ip_hashなど)を選択し、ヘルスチェックをオンにしてバックエンドを列挙します。JSON設定を直接編集することもできます(SSLcatはYAMLではなくJSONを使用します)。
はい。v2.0系列は本番経路を継続的に強化しています:証明書・鍵・設定バージョン・トークン・セッションのアトミック書き込み、すべてのコンポーネントでの冪等なStop / Close、並行下でも安全なアップストリームキャッシュ、高スループットな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`)とベアラートークンで設定します。Cursor、Cherry Studio、Continue.dev、curlによるデバッグを含む完全な設定は`docs/mcp-client-setup.md`を参照してください。
はい。すべての破壊的ツールは2段階確認を使用します:最初の呼び出しでは影響情報付きのドライランプレビュー(例:`cert_delete`は証明書がプロキシルールから参照されているかと残り日数を提示、`proxy_route_delete`はプレフィックスとバックエンドを列挙)と60秒TTLの`confirm_token`を返します。AIは2回目の呼び出しの`confirm`引数にそのトークンを渡して初めて実行できます。トークンは(token_name、ツール、引数ハッシュ)に紐付けられているため、別のツールや引数で使い回すことはできません。
Isolation ForestがSSLcatに組み込まれています。`RequestSampler`が各実リクエストから特徴量を抽出して5,000スロットのリングバッファに蓄え、学習はリングから直接サンプルを取り、フォレストをJSONとして`${data_dir}/ml/isolation_forest.json`に永続化します(次回起動時に自動ロード)。推論結果は200スロットのリングバッファに入るため、管理パネルの「最近の検出」タブはハードコードされたモックデータではなく実トラフィックを反映します。
Linux(主要ディストリビューションすべて)、macOS、Windows。amd64とarm64の両バイナリを公開しています。本番ではLinux上でsystemd配下でSSLcatを動かすことを推奨します。
最小:RAM 512 MB、ディスク100 MB。推奨:RAM 2 GB、ディスク1 GB。ソースからビルドする場合はGo 1.21以降が必要です。
すべてサポートしています。WebSocketは透過的にアップストリームへ転送され、HTTP/2 / HTTP/3上のSSEは書き込みタイムアウトが長時間ストリームを切断しないようチューニングされており、PHPサイトはFastCGIバックエンド経由で動作します。
管理パネルは境界付きテーリングでログを読み取ります(巨大なログファイルでもメモリに引き込まれません)。設定したログファイルを直接tailすることもできます。MCP経由では、AIクライアントが`sslcat://logs/access?since=10m&domain=foo.com&limit=200`のようなリソースで末尾を取得できます。
SSLcatは標準でLet's Encryptを対象としています — HTTPSを既定にするために存在する無料の公開CAです。`cert_upload`で商用証明書をアップロードすることも可能で、SSLcatはPEMパース、証明書と鍵のペアリング、CN/SANのカバレッジを検証します。
1) `sslcat doctor --json`は設定、ポート、証明書ディレクトリ、サイトルート、アップストリーム、MCPトークン状態を横断的にワンショットでセルフチェックします。2) `sslcat status --json`はバージョン、リスニングパラメータ、site / cert / MCPサマリを表示します。3) SSLcatのエラーログと`${data_dir}/mcp_audit.YYYYMMDD.log`を読むか、MCPの`error_log_list` / `error_log_tail`ツール経由でAIに読ませます(SSLcat自身に加え、すべてのproxy / static / 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`(静的サイトとPHPサイトのCRUD — 削除には明示的な`--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統合、マルチクラスタ対応、高度なキャッシュ戦略、プラグインシステム、GraphQL API。
MIT。コード、issue、リリースはすべてGitHubにあります:https://github.com/xurenlu/sslcat 。issue、PR、`docs/`配下への追加ユースケースを歓迎します。
没有找到您要的答案?
如果您有其他问题或需要技术支持,请通过以下方式联系我们:
📧 邮箱: xurenlu@gmail.com
💬 GitHub Issues:github.com/xurenlu/sslcat/issues