Ssl Inspector

io.github.4hmetuyar由 GitHub 账号 4hmetuyar 发布v0.2.3更新于 Oct 25, 2026

TLS certificate/cipher/protocol inspection

概览

AI 生成的概览

本地 MCP 服务器,用于检查域名的 TLS 证书、加密套件、协议配置和 HSTS,让助手审计 SSL/TLS 配置。

可以做什么
  • 对单个域名执行完整 TLS 检查:证书、加密套件、协议与 HSTS
  • 并行检查多个域名,或批量查询证书到期时间
  • 获取详细证书信息,如 SHA-256 指纹、SAN、签发链和序列号
  • 按严重级别报告安全问题,包括证书过期或即将过期、主机名不匹配、弱密钥或弱签名、过时协议和弱加密套件
  • 也可作为命令行工具使用,支持 JSON 输出和退出码,便于接入 CI/CD
适用场景
当需要让助手确认某站点证书是否有效、证书何时到期,或是否存在弱协议、弱加密套件、缺少 HSTS 等问题时使用,也适合批量检查多个域名。
运行要求
以本地 stdio 进程运行,通过 npm 包 @guardbee/mcp-ssl-inspector 安装(需 Node.js,可用 npx 启动)。需要能访问目标主机的 TLS 端口。未声明账号、API 密钥或请求头。
安装前请注意
服务器会主动连接所指定的域名,目标主机可获知扫描机器的地址。遥测默认关闭;设置 GUARDBEE_TELEMETRY=1 后会向第三方发送服务器、工具、成功状态、耗时和较短参数值,较长字符串以及 content、token、password 等字段会被替换为占位符。检查本身为只读,但部分弱加密套件探测在特定 Node/OpenSSL 构建下会标记为未测试。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Ssl Inspector,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@guardbee/mcp-ssl-inspector

🇬🇧 English | 🇹🇷 Türkçe | 🇨🇳 中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇧🇷 Português | 🇪🇸 Español | 🇩🇪 Deutsch

[npm version] [npm downloads] [License: MIT]

An MCP server that inspects TLS certificates, cipher suites, and protocol configuration for any domain. Uses Node.js's built-in tls module — no external dependencies.

Telemetry is off by default. With GUARDBEE_TELEMETRY=1 it sends the server, tool, success, duration and short parameter values such as a file path; longer strings and fields like content, token or password are replaced with a placeholder. See @guardbee/mcp-telemetry.


Features

  • Certificate Inspection — validity, days until expiry, SHA-256 fingerprint, SANs, issuer chain
  • Protocol Check — TLS 1.0/1.1 deprecation warning, SSLv2/v3 critical warning
  • Cipher Analysis — detects NULL, EXPORT, RC4, DES, 3DES, anonymous ciphers
  • HSTS Check — Strict-Transport-Security header, max-age, includeSubdomains
  • Bulk Scanning — scans N domains in parallel
  • Certificate Expiry Monitoring — 🚨 / ⚠️ / ✅ icons for upcoming expirations
  • 12 Unit Tests — pure logic tests, no network connection required

Quick Start

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

Add to claude_desktop_config.json:

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

MCP Tools

ToolDescription
inspect_sslFull TLS inspection for a single domain (cert + cipher + protocol + HSTS)
inspect_ssl_bulkInspects multiple domains in parallel
check_cert_expiryChecks certificate expiry dates for N domains
get_cert_infoDetailed certificate info for a domain (fingerprint, SAN, chain, serial number)

Example Usage

You can ask Claude:

"Is example.com's SSL certificate valid?"

"When do these domains' certificates expire: example.com, api.example.com, shop.example.com"

"Is example.com using a weak cipher suite?"

Example Output

┌─ 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

Security Findings

FindingSeverityDescription
CERT_EXPIRED🔴 CriticalCertificate has expired
CERT_EXPIRY_CRITICAL🔴 Critical< 7 days remaining
CERT_EXPIRY_SOON🟠 High< 21 days remaining (ACME clients renew at 30: renewal is failing)
CERT_EXPIRY_WARN🟡 Medium< 30 days remaining
HOSTNAME_MISMATCH🔴 CriticalThe certificate is not valid for the host
CERT_REVOKED🔴 CriticalThe certificate has been revoked
CERT_SELF_SIGNED🟠 HighSelf-signed certificate
CERT_CHAIN_INCOMPLETE🟠 HighThe server does not send its intermediate certificate
CERT_CHAIN_INVALID🟠 HighOther chain validation error
WEAK_KEY🟠 High / 🔴 CriticalRSA key under 2048 bits (critical under 1024), EC key under 256 bits
WEAK_SIGNATURE🟠 HighLeaf or intermediate signed with SHA-1 or MD5
CERT_NO_SAN🟡 MediumNo Subject Alternative Name
DEPRECATED_PROTOCOL🟠 HighThe server still accepts TLS 1.0 or 1.1 (probe)
OBSOLETE_PROTOCOL🔴 CriticalSSLv2 or SSLv3
WEAK_CIPHER🔴 Critical / 🟠 HighAccepts NULL/EXPORT/RC4 (critical) or 3DES (high) suites (probe)
WEAK_DH🟠 High / 🔴 CriticalDiffie-Hellman group under 2048 bits (critical under 1024) (probe)
NO_FORWARD_SECRECY🟡 MediumAccepts RSA key exchange ciphers (probe)
NO_HSTS🟡 MediumNo HSTS header found
HSTS_SHORT_MAX_AGE🔵 Lowmax-age < 15552000s
NO_TLS13🔵 LowTLS 1.3 not supported (probe)
NO_OCSP_STAPLING🔵 LowNo stapled OCSP response
NO_CAA🔵 LowNo CAA DNS record for the domain or a parent

Probes. One default handshake lands on the best protocol and cipher both sides share, so a server that also accepts TLS 1.0 or RSA key exchange looks fine. inspect_ssl and the CLI therefore make a few extra handshakes, each offering only the thing under test (TLS 1.0, TLS 1.1, TLS 1.3, RSA key exchange, DHE, weak cipher families). Weak families the runtime's own OpenSSL cannot offer (Node 22 builds have no 3DES/RC4/EXPORT) are listed as not tested rather than passed. --no-probes / probes: false skips them; inspect_ssl_bulk leaves them off unless asked.


CLI — CI/CD Integration

In addition to MCP server mode, this can also be used directly as a CLI:

bash
# Full TLS inspection for a single domainnpx @guardbee/mcp-ssl-inspector inspect example.com
# Multiple domainsnpx @guardbee/mcp-ssl-inspector inspect example.com api.example.com shop.example.com
# Custom portnpx @guardbee/mcp-ssl-inspector inspect example.com:8443
# Certificate expiry checknpx @guardbee/mcp-ssl-inspector expiry example.com api.example.com
# Fail only on criticalnpx @guardbee/mcp-ssl-inspector inspect example.com --fail-on=critical
# JSON outputnpx @guardbee/mcp-ssl-inspector inspect example.com --format=json

Exit codes: 0 = no issues · 1 = findings above threshold / expired cert · 2 = error

Configuration via guardbee.yml

Create a guardbee.yml at your project root to persist CLI flags. CLI flags always override file settings.

yaml
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

See guardbee.example.yml for a sample file.

GitHub Actions — Post-Deployment Check

yaml
name: SSL Checkon:  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 }}

Scheduled Expiry Monitor

yaml
name: Cert Expiry Monitoron:  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

yaml
ssl-inspect:  image: node:20  script:    - npx @guardbee/mcp-ssl-inspector inspect $DOMAIN --fail-on=high  environment:    name: production  only:    - main

Development

bash
npm installnpm test          # 12 unit testsnpm run build     # TypeScript compile

License

MIT — GuardBee

Feedback

Questions, ideas, or a false positive? Start a thread in GitHub Discussions or open an issue. If GuardBee is useful to you, a ⭐ on the repository helps others find it.

来源:packages/ssl-inspector/README.md,提交 040e072

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.3最新Sep 29, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分