You need to enable JavaScript to run this app. 如何将IPWorks组件与自签名SSL证书配合使用
优惠活动
大模型
产品
解决方案
定价
更多

如何将IPWorks组件与自签名SSL证书配合使用

IPWorks自签名SSL证书联调可落地配置方案

报错原因拆解

出现“证书并非有效”的提示,本质是IPWorks组件内置的SSL校验逻辑未通过,和自签名证书本身的合法性没有必然关系。即便证书本身合法有效,只要组件读取、匹配、校验环节出现配置偏差,就会触发该报错。

服务端侧补全配置(原配置缺失项)

原服务端配置逻辑缺少必要参数,会直接触发证书无效报错,补全后如下:

  • 证书路径使用绝对路径指定,避免应用运行时工作目录变化导致无法读取PFX文件
  • 显式指定SSLCertSubject参数,值为PFX内存储的服务端证书的通用名(CN),避免组件错选PFX内其他证书条目
  • 确认导出PFX时勾选了“包含证书链、导出私钥”选项,缺失私钥或证书链的PFX会被组件判定为无效
    对应参考代码:
server.SSLCertStoreType := cstPFXFile;
server.SSLCertStore := 'D:\certs\cert.pfx'; // 替换为PFX实际绝对路径
server.SSLCertStorePassword := 'your_pfx_password';
server.SSLCertSubject := 'CN=localhost'; // 替换为PFX内证书的实际CN值
server.LocalPort := 5050;
server.SSLEnabled := True;
server.Listening := True;

客户端侧调整逻辑

原客户端配置存在两个典型误区,是触发报错的主要原因:

  1. 单向SSL场景下,客户端无需配置PFX证书存储、密码——客户端配置PFX是用于双向认证时向服务端出示客户端身份证书的场景,非双向认证时配了反而会因找不到对应客户端证书条目触发校验报错
  2. IPWorks客户端默认会从系统受信任根存储校验服务端证书合法性,自签名证书不在系统受信根列表中,会被直接判定为无效,需要通过内置的证书校验事件完成规则适配

两种适配自签名证书的实现方式

  • 测试场景快速实现:编写SSLServerAuthentication事件回调,在回调中精准匹配服务端证书的主题、指纹信息后,将Accept参数设为True,禁止生产环境直接放行所有未校验的证书请求
  • 生产场景合规实现:将自签名证书的根CA导入客户端系统的受信任根存储,或在客户端配置中指定CA证书路径,完成链路校验
    对应参考代码:
// 注册服务端证书校验事件
procedure TForm1.TcpClientSSLServerAuthentication(Sender: TObject; const Host: string;
  Port: Integer; const Cert: string; const Subject: string; const Issuer: string;
  const Other: string; var Accept: Boolean);
begin
  // 示例:仅校验连接主机为localhost时放行,实际需替换为和预存证书指纹的匹配逻辑
  if Host = 'localhost' then
    Accept := True;
end;

// 连接逻辑
procedure TForm1.ConnectBtnClick(Sender: TObject);
begin
  cl.SSLEnabled := True; // 不要遗漏客户端侧SSL开关配置
  cl.Connect('localhost', 5050);
end;

常见报错排查清单

  • 确认PFX文件权限:应用进程对PFX文件有读取权限,避免因权限不足读不到文件触发误报
  • 确认证书主机名匹配:服务端证书的CN/SAN列表中,包含客户端实际连接的地址(如localhost、服务器IP),不匹配会被直接拦截
  • 确认端口未被其他进程占用,避免连接异常被误判为证书问题
  • 已确认证书本身合法的前提下,优先排查路径、权限、配置项匹配的问题,无需反复修改证书文件本身

内容的提问来源于stack exchange,提问作者abluka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 22:15:04