Loading... # Certificate Inspector:基于 Playwright 的全链路 SSL 证书检测工具 # 一、新闻概述 ## 1. 标题 Certificate Inspector:使用 Playwright 捕获网页完整网络足迹的 SSL 证书检测工具 ## 2. 发布时间 2025 年 1 月(GitHub 开源项目) ## 3. 来源 GitHub 开源仓库:shanselman/cert-inspector # 二、核心内容 ## 1. 事件摘要 ### A. 主要内容 Certificate Inspector 是一款基于 Node.js 和 Playwright 的 Web 工具,能够检测网页加载过程中所有域名的 SSL 证书和 DNS 记录。其核心创新在于使用无头浏览器捕获完整请求树,包括 JavaScript 动态加载的资源、广告、追踪器和 API 调用。 ### B. 核心亮点 - 完整请求树捕获:通过 Playwright 无头 Chromium 拦截所有网络请求 - 多维度证书检测:SSL 详情、证书链、TLS 版本、HSTS 状态 - 健康度仪表板:颜色编码状态、进度条可视化、按紧急程度排序 - 多视图展示:详细表格、摘要卡片、时间线三种视图 - 多种部署方式:独立可执行文件、Docker、Codespaces、本地开发 ## 2. 关键信息 ### A. 技术栈 - 后端:Node.js + Express - 浏览器自动化:Playwright(无头 Chromium) - 证书解析:Node.js 原生 tls 模块 ### B. 开源协议 MIT License ### C. 部署选项 - Windows/macOS/Linux 可执行文件 - Docker 容器 - GitHub Codespaces(云端运行) - 本地开发环境 ## 3. 背景介绍 ### A. 痛点分析 传统 SSL 检测工具存在以下局限: - 仅检测主域名,无法发现第三方资源 - 无法捕获 JavaScript 动态加载的连接 - 无法识别隐藏的追踪器和 API 调用 - 缺乏可视化的健康度评估 ### B. 解决方案 通过 Playwright 模拟真实用户访问,拦截所有网络请求,实现对网页完整网络足迹的全面检测。 # 三、详细报道 ## 1. 主要功能 ### A. 深度检测 - 完整请求树捕获:使用无头 Chromium 加载页面并捕获所有网络请求 - DNS 查询:每个域名的 IPv4/IPv6 地址和 CNAME 记录 - SSL 证书详情:主题、颁发者、有效期、序列号、指纹 - 证书链:查看完整的信任链 - TLS 版本:检测域名是否使用 TLS 1.2 或 1.3 - HSTS 状态:检查是否启用 Strict-Transport-Security - 响应时间:测量到每个域名的连接延迟 ### B. 健康度仪表板 - 颜色编码状态:绿色(健康)、黄色(即将过期,小于等于 30 天)、红色(已过期/无效)、灰色(无 HTTPS) - 进度条:证书健康状况的可视化分解 - 按紧急程度排序:问题优先显示 - 剩余天数:大号可扫描的数字显示 ### C. 多视图展示 - 详细视图:完整表格,可展开证书详情 - 摘要视图:紧凑卡片网格,快速扫描 - 时间线视图:证书过期的可视化时间线 ### D. 工具与过滤器 - 搜索:按域名过滤 - 状态过滤:按健康状态显示/隐藏 - 颁发者过滤:按证书颁发机构分组(Let's Encrypt、DigiCert 等) - 深色模式:护眼模式 - 点击复制:域名、指纹、序列号 - 导出:下载 JSON 或 CSV 格式结果 ## 2. 技术架构 ### A. 系统组成 ```mermaid graph TB User[用户浏览器] -->|访问| WebUI[Web 界面] WebUI -->|提交 URL| API[Express API 服务器] API -->|创建页面| Playwright[Playwright 无头浏览器] Playwright -->|加载页面| Target[目标网页] Playwright -->|拦截请求| Network[网络请求拦截器] Network -->|提取域名| DNS[DNS 解析器] Network -->|提取证书| TLS[TLS 证书解析器] DNS -->|返回结果| API TLS -->|返回结果| API API -->|返回数据| WebUI ```  ### B. 核心工作流程 ```mermaid sequenceDiagram participant U as 用户 participant W as Web 界面 participant P as Playwright participant T as 目标网页 participant D as DNS 解析 participant C as 证书检查 U->>W: 输入 URL W->>P: 创建浏览器上下文 P->>T: 加载目标页面 P->>P: 拦截所有网络请求 loop 每个请求 P->>D: 解析 DNS 记录 P->>C: 检查 SSL 证书 D-->>P: IP 地址、CNAME C-->>P: 证书详情、链、TLS 版本 end P-->>W: 返回完整结果 W-->>U: 显示健康度仪表板 ```  ### C. 数据处理流程 ```mermaid graph LR A[网络请求] --> B[域名提取] B --> C[DNS 解析] B --> D[TLS 握手] C --> E[IP/CNAME 记录] D --> F[证书链获取] F --> G[证书解析] G --> H[健康度评估] E --> H H --> I[结果聚合] I --> J[视图渲染] ```  ## 3. 部署方案 ### A. 独立可执行文件 - 无需安装 Node.js - 首次运行自动下载浏览器 - 支持 Windows、macOS、Linux ### B. Docker 容器 - 适合团队和服务器环境 - 需要 Docker Desktop ### C. GitHub Codespaces - 完全在浏览器中运行 - 无需安装任何软件 - GitHub 提供每月 60 小时免费使用 ### D. 本地开发 - 适合贡献者和开发者 - 需要 Node.js 环境 ## 4. API 接口 ```bash # 获取 JSON 格式结果 curl -H "Accept: application/json" "http://localhost:3000/inspect?url=https://example.com" # 获取 HTML 格式结果(默认) curl "http://localhost:3000/inspect?url=https://example.com" ``` ## 5. 应用场景 ### A. 安全审计 检查 Web 资产的证书健康状况 ### B. 第三方风险评估 查看网站依赖的外部域名 ### C. 合规性验证 验证 TLS 版本和 HSTS 部署 ### D. 调试分析 理解页面的完整网络足迹 ### E. 证书监控 在证书过期导致中断前捕捉 # 四、影响分析 ## 1. 行业影响 ### A. 填补工具空白 传统 SSL 检测工具仅关注主域名,Certificate Inspector 首次实现了对网页完整网络足迹的检测,填补了第三方资源检测的空白。 ### B. 提升安全可见性 通过可视化展示所有依赖域的证书状态,帮助安全团队发现被忽视的风险点。 ## 2. 用户影响 ### A. 安全团队 - 快速识别证书过期风险 - 全面掌握第三方依赖 - 优先处理紧急问题 ### B. 开发者 - 调试网络请求问题 - 验证 HTTPS 部署 - 优化页面加载性能 ### C. 运维人员 - 监控证书过期时间 - 规划证书续期 - 确保 HSTS 正确配置 ## 3. 技术趋势 ### A. 浏览器自动化应用 Playwright 在安全检测领域的应用展示了浏览器自动化技术的潜力,未来可能催生更多类似工具。 ### B. 主动式安全检测 从被动检测转向主动式、全面化的安全评估,体现了安全工具的发展趋势。 ### C. 可视化与用户体验 安全工具越来越注重用户体验和可视化呈现,降低了技术门槛。 # 五、各方反应 ## 1. 社区反馈 项目采用 MIT 开源协议,欢迎社区贡献,PR 接受前需先讨论变更内容。 ## 2. 技术评价 ### A. 优势 - 全面的请求捕获能力 - 多样化的视图展示 - 灵活的部署方式 - 友好的用户界面 ### B. 适用场景 - 中小型网站的证书监控 - 安全审计和风险评估 - 开发和调试环境 # 六、相关链接 ## 1. 项目地址 - GitHub 仓库:https://github.com/shanselman/cert-inspector ## 2. 技术文档 - Playwright 官方文档 - Node.js tls 模块文档 *** ## 参考资料 1. [Certificate Inspector - GitHub](https://github.com/shanselman/cert-inspector) 最后修改:2026 年 01 月 23 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏