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

open62541 v1.4.11.1客户端证书无SubjectAltName,AcceptAll仍无法连接求助

解决open62541客户端BadCertificateUriInvalid错误的方案

问题根源

UA_CertificateVerification_AcceptAll()仅禁用OpenSSL层面的证书信任验证(比如证书链、有效期、签名等),但BadCertificateUriInvalid是OPC UA会话建立阶段的ApplicationUri一致性检查失败导致的——服务器证书没有在SubjectAltName中包含其声明的ApplicationUri,而open62541默认会强制执行这个检查,和证书验证回调无关。

解决步骤

1. 禁用ApplicationUri一致性检查

在客户端配置中,修改sessionConfig下的verifyPeerApplicationUri参数为false,跳过这个会话层检查:

// 获取默认客户端配置
UA_ClientConfig config = UA_ClientConfig_default();

// 保持你已设置的证书信任检查禁用
config.certificateVerification = UA_CertificateVerification_AcceptAll();

// 关键:关闭ApplicationUri一致性校验
config.sessionConfig.verifyPeerApplicationUri = false;

// 用修改后的配置初始化客户端
UA_Client *client = UA_Client_new(config);

2. 额外注意事项

  • 该修改仅适合测试环境或完全信任的服务器场景,生产环境下务必要求服务器厂商提供符合OPC UA规范的证书(必须在SubjectAltName字段中包含服务器的ApplicationUri)。
  • 如果后续出现其他证书相关错误,再针对性调整客户端的证书信任策略,但当前错误仅需上述修改即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 12:54:51