You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Domino App Dev Pack自签SSL证书验证错误19问题咨询

问题解答

OpenSSL 验证错误码19含义

错误码19(self-signed certificate in certificate chain)表示OpenSSL在校验证书链时,发现链内存在未被本地信任库认可的自签名根证书。
你这里触发这个错误的直接原因是:Proton服务端在TLS握手时错误地将自签名根CA证书(也就是你生成的ca.crt)和服务端证书一起下发给了客户端。按照标准TLS流程,服务端只需要下发服务端证书、中间CA证书(如果存在)即可,根证书应该由客户端本地预先存放在信任列表中,不需要服务端下发。虽然你测试时已经通过-CAfile参数指定了根证书路径,但OpenSSL检测到链中自带的自签名根时,仍然会抛出这个错误提示。

对Pilot模式下IAM服务SSL使用的影响

会直接导致SSL握手失败,IAM服务无法正常通过Proton端口提供服务,你贴的Domino服务端日志已经出现致命级别的SSL握手错误,不是可忽略的警告。

关联错误根因梳理

你遇到的几个报错是连锁触发的,核心问题有3个:

  • 证书域名不匹配:你生成的服务端证书CN为192.168.176.130,但测试连接时使用的地址是serv.org.com,Proton做SNI域名校验时找不到匹配该域名的证书,直接触发日志中No match found for server name: serv.org.com错误。
  • 双向TLS校验未通过:Proton默认开启双向SSL认证,要求客户端连接时出示由信任CA签发的客户端证书,你用openssl s_client测试时没有传入客户端证书参数,直接触发PEER_DID_NOT_RETURN_A_CERTIFICATE的握手失败错误。
  • unexpected eof while reading报错是结果而非原因:前面的握手校验失败后,服务端主动断开TCP连接,openssl s_client还在等待应用层返回数据,就会抛出这个EOF错误,和证书格式、加密套件兼容性无关。

修复方案

按以下顺序调整即可解决问题:

  1. 重新生成服务端证书,把实际访问用的域名serv.org.com加入证书的CN或SAN扩展字段,如果需要同时用IP192.168.176.130访问,也把该IP一并加入SAN列表。
  2. 修改Proton的TLS配置,服务端证书链只配置服务端证书、中间CA证书(如果有),不要把自签名根ca.crt配置到服务端下发的证书链中。
  3. 用openssl做连通性测试时,如果要验证双向TLS场景,追加-cert <你的客户端证书路径> -key <你的客户端私钥路径>参数传入客户端证书,否则会被服务端直接拒绝。
  4. 确认运行IAM服务的主机、所有需要调用Proton接口的客户端,都已经把你生成的ca.crt导入到系统/应用的受信任根证书存储中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:18:30