一、问题概述
按照服务方提供的指令文档,尝试为 Hermes Agent 自动配置宝塔 MCP 服务、处理 TLS 证书、安装相关 Skills 并验证 MCP 连接。
执行过程中发现,下载的指令文档虽然包含 mcp_info.json 示例,但其中的 tls_cert 证书链被截断,无法完成安全配置和连接验证。
二、相关信息
- 指令文档下载地址:http://120.55.*.*:8888/down/NagZBH46SQXw.md
- 文档下载结果:成功
- 下载文件大小:约 18 KB(实际 18767 bytes)
- MCP 服务地址:已脱敏,仅保留服务端口和路径结构
- TLS 要求:tls_required: true
- Agent:Hermes Agent
- 操作系统:Linux
安全说明:报告未包含完整 Bearer Token、证书 PEM 内容或其他敏感凭据。由于原始文档中的 Token 已暴露在传输内容中,建议服务方立即撤销并重新生成该 Token。
三、执行步骤与结果
1. 下载指令文档
执行结果:成功。
- HTTP 下载成功
- 文件已保存到本地临时文件
- 文件大小:18767 bytes
复制代码
2. 读取 mcp_info.json
按照文档要求,读取第 23–30 行的 JSON 示例。
已确认字段包括:
- api_token
- public_host
- local_host
- tls_required
- tls_cert
执行结果:失败,停止后续操作。
3. 发现证书链被截断
原始文档第 29 行末尾包含明确的截断标记:
- -----BEGIN CERTIFICATE-----
- MIIFODCCAyCg...
- [truncated]
复制代码
该内容不是完整 PEM 证书链,无法通过 JSON 解析后得到完整证书文件。
4. 后续步骤
根据文档要求,后续应执行:
- 保存完整 tls_cert
- 配置信任证书
- 写入 Hermes mcp_servers 配置
- 下载并安装 Skills
- 重启 Agent
- 验证 MCP 工具发现和调用
由于证书链不完整,上述步骤均未执行。
四、错误信息
错误步骤
读取服务方提供的 mcp_info.json 示例时,tls_cert 字段不完整。
完整错误证据
- ... -----BEGIN CERTIFICATE-----\nMIIFODCCAyCg...
- [truncated]
复制代码
可能原因
- 下载接口返回的文档内容被服务端截断。
- 文档生成程序对长证书链设置了内容长度限制。
- 服务方将摘要或示例误当成完整 mcp_info.json 返回。
- 多张证书组成的完整链未全部写入文档。
五、影响
由于 tls_required 为 true,缺少完整证书链可能导致:
- self-signed certificate
- unable to verify the first certificate
- hostname/IP mismatch
- MCP 客户端连接失败
- 无法确认服务是否安全可信
在证书链不完整的情况下继续配置,可能导致使用不安全的 TLS 绕过方式,因此本次没有使用 NODE_TLS_REJECT_UNAUTHORIZED=0 等方式规避证书验证。
六、建议服务方修复
请服务方重新提供完整、可解析的 mcp_info.json,建议采用以下任一方式:
方案 A:提供独立 JSON 文件
直接提供一个可下载的完整文件,例如:
- https://example.com/mcp_info.json
复制代码
要求:
- JSON 可被标准解析器完整解析
- tls_cert 包含完整 PEM 证书链
- 不包含 [truncated]、... 等摘要标记
- Token 建议设置有效期,并支持撤销和重新生成
方案 B:证书单独提供
将 mcp_info.json 与证书链拆分:
[code=JSON]
{
"api_token": "已脱敏",
"public_host": "https://服务器地址:8765/安全路径/mcp",
"tls_required": true,
"tls_cert_url": "https://example.com/mcp-chain.pem"
}
[/code]
方案 C:提供证书文件 SHA256
为便于校验,建议同时提供:
- 证书链文件
- SHA256 校验值
- 证书有效期
- 证书 SAN 列表
七、安全建议
原始文档中包含 Bearer Token。虽然本报告已经脱敏,但该 Token 已经出现在原始下载内容和聊天记录中,建议:
- 立即撤销当前 Token。
- 生成新的 Token。
- 为 Token 设置有效期和最小权限。
- 不要把真实 Token 直接放在公开论坛帖子中。
- 发布论坛时仅保留前后少量字符,例如:
八、结论
本次失败并非 MCP 服务端口无法访问,而是服务方提供的配置文档中 tls_cert 字段被截断,导致无法按原文档安全完成证书处理、MCP 配置和 Skills 安装。
当前状态:
- 文档下载:成功
- 配置文件完整解析:失败
- 证书安装:未执行
- Hermes MCP 配置:未修改
- Skills 安装:未执行
- MCP 连接验证:未执行
请服务方提供完整的 mcp_info.json 或完整证书链后,再继续执行配置流程。 |
|