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

添加UserManager后UaExpert连接OPC UA服务器报BadCertificateHostNameInvalid错误

解决OPC UA服务器配置UserManager后出现BadCertificateHostNameInvalid错误的问题

问题场景

服务器原配置(无安全策略、允许匿名访问)可正常通过UaExpert访问:

allowAnonymous: True
certificateFile: certificateFile
privateKeyFile: privateKeyFile
securityPolicies: None
securityMode: None

修改为以下配置(禁用匿名、启用Basic256Sha256安全策略+SignAndEncrypt模式、添加UserManager)后,UaExpert访问时出现BadCertificateHostNameInvalid错误,虽不影响服务器运行,但需彻底消除该错误:

allowAnonymous: False
certificateFile: certificateFile
privateKeyFile: privateKeyFile
securityPolicies: Basic256Sha256
securityMode: SignAndEncrypt
userManager: userManager

错误原因

该错误核心是服务器证书的主机名/IP与UaExpert连接时使用的地址不匹配。当启用SignAndEncrypt安全模式和Basic256Sha256安全策略后,OPC UA客户端(UaExpert)会严格验证服务器证书的以下字段:

  • 证书Subject中的Common Name(CN)
  • 证书扩展字段X509v3 Subject Alternative Name(SAN)

原配置无安全策略时,客户端不会执行该验证,因此未触发错误。

解决方案

1. 检查服务器证书的地址匹配性

先确认服务器证书是否包含连接时使用的主机名/IP:

  • 使用OpenSSL命令查看证书详情:
    openssl x509 -in certificateFile -text -noout
    
  • 重点查看:
    • Subject字段中的CN=xxx
    • X509v3 Subject Alternative Name字段中的DNS:xxx或IP Address:xxx

如果上述字段中没有UaExpert连接时使用的地址(比如你用192.168.1.100连接,但证书里只有DNS:localhost),则需要重新生成证书。

2. 重新生成匹配的服务器证书

根据你使用的OPC UA框架生成包含正确地址的证书:

  • 以Python-opcua为例,生成证书时指定主机名和IP:
    import opcua.ua as ua
    # 生成包含多个地址的证书
    ua.generate_server_certificate("server_cert.pem", hostname=["opc-server", "localhost", "192.168.1.100"])
    
  • 其他框架(如FreeOpcUa、.NET OPC UA SDK)可通过自带的证书生成工具,添加对应的主机名和IP到SAN字段。

3. 临时绕过主机名验证(仅测试环境使用)

如果暂时无法重新生成证书,可在UaExpert中关闭主机名验证:

  • 打开UaExpert,进入Settings -> Certificate Management
  • 切换到Trust List,找到目标服务器证书,右键选择Properties
  • 在Validation标签页,取消勾选Validate Hostname

注意:此方法仅适用于测试环境,生产环境禁用会引入安全风险,不推荐使用。

4. 确认服务器证书加载正确性

确保服务器加载的是新生成的匹配证书,而非旧的不匹配证书:

  • 检查配置文件中certificateFile和privateKeyFile路径是否指向新证书文件
  • 重启服务器,确保证书加载生效

总结

消除BadCertificateHostNameInvalid错误的根本方法是确保服务器证书的CN或SAN字段包含客户端连接时使用的主机名/IP,重新生成匹配的证书是生产环境的最优解。临时绕过验证仅用于测试场景,不可长期使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 06:41:25