Python OPC UA服务器报错:非开放端点未设证书+地址绑定失败求助
解决Python OPC UA服务器启动的两个错误
错误1:OSError: [Errno 10049] 尝试绑定地址('192.168.111.221', 4840)时出错:请求的地址在其上下文中无效
该错误是因为指定的绑定IP192.168.111.221并非当前机器的有效网卡地址,或机器未配置该IP。解决方式:
- 改为
0.0.0.0,监听所有可用网卡:server.set_endpoint("opc.tcp://0.0.0.0:4840/freeopcua/server/") - 替换为机器实际存在的IP地址(通过
ipconfig(Windows)或ifconfig(Linux)查看) - 仅本地测试时,使用
127.0.0.1或localhost:server.set_endpoint("opc.tcp://localhost:4840/freeopcua/server/")
错误2:已请求非开放端点,但未设置私钥和证书
该错误源于服务器配置了安全模式端点(如Sign、SignAndEncrypt),但未提供对应证书和私钥。两种解决路径可选:
路径1:禁用安全端点,使用开放模式
修改端点配置,仅保留无安全策略的端点:
from opcua import ua server.set_security_policy([ua.SecurityPolicyType.NoSecurity])
路径2:生成并配置证书与私钥
- 用freeopcua自带工具生成证书和私钥:
python -m opcua.tools.create_certificate -o server_cert.pem -k server_key.pem - 在代码中加载证书和私钥:
server.load_certificate("server_cert.pem") server.load_private_key("server_key.pem") - 配置所需安全策略:
server.set_security_policy([ ua.SecurityPolicyType.Basic256Sha256_SignAndEncrypt, ua.SecurityPolicyType.Basic256Sha256_Sign ])
内容的提问来源于stack exchange,提问作者Hardik D. Patel
相关产品推荐
相关产品推荐

