mcpField
S
ssl-inspector

ssl-inspector

ローカル
github.com/GuardBeeセキュリティ21 日前に更新

ssl-inspector について

ssl-inspectorは、TLS証明書とドメインのセキュリティ設定を調べるMCPサーバー兼コマンドラインツールです。証明書、プロトコル、暗号スイート、HSTSを検査し、複数ドメインのスキャンにも対応します。

主な機能

  1. 01証明書の有効性と詳細を確認
  2. 02TLSプロトコルと暗号スイートを検査
  3. 03HSTS設定を確認
  4. 04複数ドメインを並列スキャン
  5. 05証明書の有効期限を確認

活用シーン

  1. 01ドメインのTLS設定を確認
  2. 02複数ドメインの証明書を点検
  3. 03期限が近い証明書を監視
  4. 04デプロイ後にTLSチェックを実行

MCP 対応

TLSの総合検査、複数ドメインの一括スキャン、証明書の有効期限確認、詳細情報の取得に使えるツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"4hmetuyar-ssl-inspector": {
"command": "npx",
"args": [
"-y",
"@guardbee/mcp-ssl-inspector"
]
}
}
}
起動コマンドnpx -y @guardbee/mcp-ssl-inspector

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@guardbee/mcp-ssl-inspector0.2.3

ツール

4

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
hoststringはい検査するドメイン名または IP(例:example.com)
portnumberいいえ接続するポート(デフォルト:443)
checkHstsbooleanいいえHTTP HEAD で HSTS ヘッダーも確認します(デフォルト:true)

詳細

@guardbee/mcp-ssl-inspector

🇬🇧 英語 | 🇹🇷 トルコ語 | 🇨🇳 中国語 | 🇯🇵 日本語 | 🇰🇷 韓国語 | 🇧🇷 ポルトガル語 | 🇪🇸 スペイン語 | 🇩🇪 ドイツ語

npm バージョン npm ダウンロード数 ライセンス:MIT

任意のドメインの TLS 証明書、暗号スイート、プロトコル設定を検査する MCP サーバーです。Node.js に組み込まれている tls モジュールを使用するため、外部依存関係はありません。

テレメトリーはデフォルトでオフです。GUARDBEE_TELEMETRY=1 を設定すると、サーバー、ツール、成功状況、所要時間、ファイルパスなどの短いパラメーター値が送信されます。長い文字列や、content、token、password などのフィールドはプレースホルダーに置き換えられます。詳細は @guardbee/mcp-telemetry をご覧ください。


機能

  • 証明書の検査 — 有効性、有効期限までの日数、SHA-256 フィンガープリント、SAN、発行者チェーン
  • プロトコルの確認 — TLS 1.0/1.1 の非推奨警告、SSLv2/v3 の重大な警告
  • 暗号の分析 — NULL、EXPORT、RC4、DES、3DES、匿名暗号を検出
  • HSTS の確認 — Strict-Transport-Security ヘッダー、max-age、includeSubdomains
  • 一括スキャン — N 個のドメインを並列スキャン
  • 証明書の有効期限の監視 — 期限が近い証明書を 🚨/⚠️/✅ アイコンで表示
  • 12 件の単体テスト — ネットワーク接続不要の純粋なロジックテスト

クイックスタート

npm install -g @guardbee/mcp-ssl-inspector

claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "guardbee-ssl-inspector": {
      "command": "npx",
      "args": ["-y", "@guardbee/mcp-ssl-inspector"]
    }
  }
}

MCP ツール

ツール説明
inspect_ssl単一ドメインの TLS を完全に検査します(証明書+暗号+プロトコル+HSTS)
inspect_ssl_bulk複数のドメインを並列に検査します
check_cert_expiryN 個のドメインの証明書の有効期限を確認します
get_cert_infoドメインの証明書情報を詳しく表示します(フィンガープリント、SAN、チェーン、シリアル番号)
使用例

Claude には次のように質問できます:

「example.com の SSL 証明書は有効ですか?」

「次のドメインの証明書はいつ期限切れになりますか:example.com、api.example.com、shop.example.com」

「example.com は脆弱な暗号スイートを使用していますか?」

出力例
┌─ example.com:443
│  Protocol  : TLSv1.3
│  Cipher    : TLS_AES_256_GCM_SHA384 (256 bit)
│  Chain     : depth=2 valid=yes
│  Cert CN   : example.com
│  Validity  : Mar 15 2024 → Jun 13 2024 (expires in 45 days)
│  SANs      : example.com, www.example.com
│  Issuer    : Let's Encrypt
│  SHA-256   : AA:BB:CC:DD:...
│  HSTS      : enabled (max-age=31536000, includeSubdomains)
│  ✅ No security issues found

セキュリティ上の検出事項

検出事項重大度説明
CERT_EXPIRED🔴 Critical証明書の有効期限が切れています
CERT_EXPIRY_CRITICAL🔴 Critical残り 7 日未満です
CERT_EXPIRY_SOON🟠 High残り 21 日未満です(ACME クライアントは 30 日前に更新します。更新に失敗しています)
CERT_EXPIRY_WARN🟡 Medium残り 30 日未満です
HOSTNAME_MISMATCH🔴 Criticalこの証明書はホストに対して有効ではありません
CERT_REVOKED🔴 Critical証明書は失効しています
CERT_SELF_SIGNED🟠 High自己署名証明書です
CERT_CHAIN_INCOMPLETE🟠 Highサーバーが中間証明書を送信していません
CERT_CHAIN_INVALID🟠 Highその他の証明書チェーン検証エラーです
WEAK_KEY🟠 High / 🔴 Critical2048 ビット未満の RSA キー(1024 ビット未満は Critical)、256 ビット未満の EC キーです
WEAK_SIGNATURE🟠 Highリーフ証明書または中間証明書が SHA-1 または MD5 で署名されています
CERT_NO_SAN🟡 MediumSubject Alternative Name がありません
DEPRECATED_PROTOCOL🟠 Highサーバーが TLS 1.0 または 1.1 を引き続き受け入れます(プローブ)
OBSOLETE_PROTOCOL🔴 CriticalSSLv2 または SSLv3 です
WEAK_CIPHER🔴 Critical / 🟠 HighNULL/EXPORT/RC4(Critical)または 3DES(High)の暗号スイートを受け入れます(プローブ)
WEAK_DH🟠 High / 🔴 Critical2048 ビット未満の Diffie-Hellman グループ(1024 ビット未満は Critical)です(プローブ)
NO_FORWARD_SECRECY🟡 MediumRSA 鍵交換暗号を受け入れます(プローブ)
NO_HSTS🟡 MediumHSTS ヘッダーが見つかりません
HSTS_SHORT_MAX_AGE🔵 Lowmax-age が 15552000s 未満です
NO_TLS13🔵 LowTLS 1.3 がサポートされていません(プローブ)
NO_OCSP_STAPLING🔵 LowOCSP stapling 応答がありません
NO_CAA🔵 Lowドメインまたは親ドメインに CAA DNS レコードがありません

プローブ。 デフォルトのハンドシェイクでは、双方が共有する最適なプロトコルと暗号が選択されるため、TLS 1.0 や RSA 鍵交換も受け入れるサーバーが問題ないように見えることがあります。そのため、inspect_ssl と CLI は追加でいくつかのハンドシェイクを実行し、それぞれテスト対象の項目(TLS 1.0、TLS 1.1、TLS 1.3、RSA 鍵交換、DHE、脆弱な暗号ファミリー)のみを提示します。ランタイムの OpenSSL 自体が提示できない脆弱なファミリー(Node 22 のビルドには 3DES/RC4/EXPORT がありません)は、合格ではなく未テストとして表示されます。--no-probes / probes: false でこれらをスキップできます。inspect_ssl_bulk では、明示的に指定しない限り無効になっています。


CLI — CI/CD 統合

MCP サーバーモードに加えて、CLI として直接使用することもできます。

# Full TLS inspection for a single domain
npx @guardbee/mcp-ssl-inspector inspect example.com

# Multiple domains
npx @guardbee/mcp-ssl-inspector inspect example.com api.example.com shop.example.com

# Custom port
npx @guardbee/mcp-ssl-inspector inspect example.com:8443

# Certificate expiry check
npx @guardbee/mcp-ssl-inspector expiry example.com api.example.com

# Fail only on critical
npx @guardbee/mcp-ssl-inspector inspect example.com --fail-on=critical

# JSON output
npx @guardbee/mcp-ssl-inspector inspect example.com --format=json

終了コード: 0 = 問題なし · 1 = しきい値を超える検出事項/期限切れの証明書 · 2 = エラー

guardbee.yml による設定

CLI フラグを保存するには、プロジェクトのルートに guardbee.yml を作成します。CLI フラグは常にファイルの設定より優先されます。

ssl-inspector:
  fail-on: high          # critical | high | medium | low
  port: 443
  hosts:                 # used when no domain is given on the CLI
    - example.com
    - api.example.com
    - shop.example.com

サンプルファイルについては、guardbee.example.yml をご覧ください。

GitHub Actions — デプロイ後チェック
name: SSL Check
on:
  workflow_run:
    workflows: ["Deploy"]
    types: [completed]

jobs:
  ssl-check:
    runs-on: ubuntu-latest
    steps:
      - name: Inspect SSL certificate
        run: npx @guardbee/mcp-ssl-inspector inspect ${{ vars.DOMAIN }} --fail-on=high

      - name: Check cert expiry (warn if < 30 days)
        run: npx @guardbee/mcp-ssl-inspector expiry ${{ vars.DOMAIN }}
定期的な有効期限モニタリング
name: Cert Expiry Monitor
on:
  schedule:
    - cron: "0 9 * * 1"  # Every Monday at 09:00

jobs:
  expiry:
    runs-on: ubuntu-latest
    steps:
      - name: Check certificate expiry dates
        run: |
          npx @guardbee/mcp-ssl-inspector expiry \
            example.com \
            api.example.com \
            shop.example.com \
            --format=json
GitLab CI
ssl-inspect:
  image: node:20
  script:
    - npx @guardbee/mcp-ssl-inspector inspect $DOMAIN --fail-on=high
  environment:
    name: production
  only:
    - main

開発

npm install
npm test          # 12 unit tests
npm run build     # TypeScript compile

ライセンス

MIT — GuardBee

フィードバック

質問、アイデア、または誤検知がありましたら、GitHub Discussionsでスレッドを立てるか、issue を作成してください。GuardBee が役に立った場合は、リポジトリに ⭐ を付けていただくと、ほかの人にも見つけてもらいやすくなります。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。