workbuddy调用私有证书https模型api失败时,应优先补全私有ca根证书至系统信任库;若为开发调试,可配置进程级ssl忽略策略或注入dangerousacceptanyservercertificatevalidator;自建模型服务端须部署完整证书链。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在WorkBuddy中配置自定义模型服务时,因私有证书(如自签名、内网CA签发)导致HTTPS模型API调用失败,则可能是由于.NET或底层HTTP客户端严格校验证书链,拒绝建立TLS连接。以下是解决此问题的步骤:
一、配置WorkBuddy进程级SSL证书忽略策略
该方法适用于开发调试阶段,通过修改WorkBuddy启动时所依赖的HTTP客户端行为,跳过服务端证书验证。注意:此操作仅限内网可信环境,不可用于生产。
1、定位WorkBuddy服务启动入口文件(通常为main.py或app.dll所在目录下的配置脚本或启动器)。
2、若使用.NET运行时,在初始化HttpClient前插入以下C#代码片段:
var handler = new HttpClientHandler { ServerCertificateCustomValidationCallback = (msg, cert, chain, err) => true };
3、确保所有对外模型请求均通过该handler构建的HttpClient实例发起,避免复用全局静态客户端。
4、重新编译或重启WorkBuddy服务,使新handler生效。
二、注入预置危险验证器(.NET 5+专用)
该方式采用.NET官方提供的标准化全放行回调,语义明确且便于代码审计识别,但同样仅限非生产环境使用。
1、在创建HttpClientHandler实例后,直接赋值其ServerCertificateCustomValidationCallback属性。
2、使用框架内置常量替代手写委托:
handler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
3、确认项目目标框架为.NET 5或更高版本,否则该常量不可用。
使用 draw.io(.drawio 格式)和 SVG 生成兼容 Microsoft Visio 的架构图。当用户需要以下任一场景时触发: - 用于 Visio 或技术文档的架构/系统/网络图 - 带连接标注的分层控制系统图 - 将 draw.io XML 转换为稳定、可嵌入的 SVG - 修复 Visio 或 draw.io 无法打开的故障排查类图表 - 任何需专业级布局且文本可编辑的图表
4、检查编译警告CS0618是否出现,若存在则需在项目文件中显式启用允许不安全API调用。
三、补全私有CA根证书至系统信任库
该方法不绕过验证,而是让私有证书被系统原生识别,适用于企业内网统一CA场景,安全性高于忽略策略。
1、获取私有CA的根证书文件(通常为.crt格式,不含私钥,由CA管理员提供)。
2、Windows平台:双击证书文件 → 选择“安装证书” → 存储位置选“本地计算机” → 存储区选“受信任的根证书颁发机构”。
3、macOS平台:将证书拖入“钥匙串访问”应用 → 右键证书 → “显示简介” → 展开“信任” → “当使用此证书时”设为“始终信任”。
4、Linux平台(Ubuntu/CentOS):将证书复制到/etc/ssl/certs/目录,执行sudo update-ca-certificates命令刷新信任链。
5、重启WorkBuddy进程,确保其继承更新后的系统证书信任库。
四、手动拼接并部署完整证书链至模型服务端
若WorkBuddy调用的是您自建的模型API服务(如FastAPI/Triton),且该服务使用私有证书,则需确保其证书文件包含完整链路,否则客户端即使信任根CA也会因中间缺失而失败。
1、确认模型服务端使用的证书文件(如fullchain.pem)已按顺序合并:域名证书 + 中间证书 + (可选)根证书。
2、禁止仅使用单独的域名.crt文件启动HTTPS服务;必须使用含中间证书的完整链文件。
3、验证证书链完整性:执行命令openssl verify -CAfile /path/to/root-ca.crt /path/to/fullchain.pem,返回OK表示链有效。
4、重启模型服务,再从WorkBuddy发起调用,观察是否仍报SSL错误。










