TDengine 接入 GE CSS OPC UA Server:taosExplorer 安全通道与用户认证配置指南
【免费下载链接】tdengineTDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps.项目地址: https://gitcode.com/taosdata/tdengine
GE CSS OPC UA Server 是 GE 工控产品线(Cimplicity / Proficy 等)对外提供 OPC UA 服务的典型数据源,在电力、流程工业等场景中承载大量设备点位数据。本文以 TDengine 的无代码数据接入组件 taosX / taosExplorer 为主体,完整讲解如何通过安全通道(Secure Channel)证书 + 用户认证(Authentication)双层级安全体系,把 GE CSS OPC UA Server 的点位数据可靠地写入 TDengine,并给出服务端证书信任/映射、连通性检查与常见错误排查的完整操作路径。读完本文,你将能够在 taosExplorer 中独立完成「数据写入 → OPC UA → GE CSS 服务端 → 入库」的端到端配置。
OPC UA 安全体系:两条相互独立的层级
接入 GE CSS OPC UA Server 时,OPC UA 安全分为两个相互独立的层级,两者都必须满足,缺一不可:
- 安全通道(Secure Channel):负责传输层加密,保护客户端与服务器之间的通信不被窃听或篡改。当 Security Mode 为
SignAndEncrypt时始终必需。在 taosExplorer 中通过Secure Channel Certificate+Certificate's Private Key两个字段配置。 - 用户认证(Authentication):负责用户身份验证,确认「谁在连接」。由 GE OPC UA Server 端实际开启的认证方式决定,taosExplorer 中 Authentication 标签页的选择必须与之一致。
理解这两层的区别是排查一切问题的前提:安全通道证书解决「通信是否加密、客户端身份是否可识别」,用户认证解决「该客户端是否有权访问」,两者各自独立生效。
生成 taosX OPC UA 客户端证书
按 生成 taosX OPC UA 客户端证书 中给出的脚本(本场景推荐使用 Windowscmd.exe版本)生成client_cert.pem与client_key.pem两个文件。
证书生成有几点硬性要求,任何一项不满足都会导致握手失败:
- 格式必须为 PEM:taosX OPC UA 插件使用
tls.LoadX509KeyPair()加载证书,不接受 DER、PKCS#12 等其他格式。 - SAN 必须包含 Application URI:证书的 Subject Alternative Name 中必须包含
URI:urn:taosx-opc:client,否则服务端会拒绝并报StatusBadCertificateUriInvalid。 - 不能复用服务端证书:从 GE、Ignition 等服务器下载到的证书(如
*.der)是服务器自身的证书,不能用作客户端证书,必须自行生成。
生成后记录证书的SHA1 指纹——后面在 GE 服务端配置时需要用到:
openssl x509 -in client_cert.pem -noout -fingerprint -sha1完整生成脚本(Windows cmd.exe / PowerShell、Linux / macOS 三个版本)及验证命令见 生成 taosX OPC UA 客户端证书,该指南同样适用于 Ignition 等其他需要证书加密的 OPC UA 服务器场景,执行一次即可。
在 taosExplorer 中配置连接
在 taosExplorer 中进入数据写入 → +新增数据源(英文界面为 Data In → Create New Data In Task),选择OPC UA,按下表设置。
连接配置
| taosExplorer 字段 | 值 |
|---|---|
| Server Endpoint | <host>:<port>/GeCssOpcUaServer(按实际部署填写) |
| Security Mode | SignAndEncrypt |
| Security Policy | Basic128Rsa15 |
| Secure Channel Certificate | 上传client_cert.pem |
| Certificate's Private Key | 上传client_key.pem |
关于 Endpoint 路径需要说明:GE CSS OPC UA Server 的应用路径固定为/GeCssOpcUaServer,这与 OPC UA 通用接入 中举例的192.168.1.66:53530/OPCUA/SimulationServer这类通用端点不同——不同厂商 OPC UA Server 的端点格式、安全策略组合、客户端证书信任流程都存在差异,这也是 taosExplorer 官方为 GE、Ignition 等常见服务端单独提供专属集成指南的原因。
安全模式与安全策略的含义
SignAndEncrypt与Basic128Rsa15来自 OPC UA 通用接入文档 中定义的安全模式/安全策略体系:
- 安全模式(Security Mode)决定数据保护级别:
None:明文传输;Sign:数字签名验证,保护数据完整性;SignAndEncrypt:签名 + 加密,保证完整性、真实性和保密性。
- 安全策略(Security Policy)决定具体加密/签名算法:
Basic128Rsa15:RSA 算法 + 128 位密钥长度(本指南推荐值);- 此外还支持
Basic256、Basic256Sha256、Aes128Sha256RsaOaep、Aes256Sha256RsaPss等。
当安全模式为Sign或SignAndEncrypt时,安全通信证书与安全通信私钥两个配置项都必须填写,缺一不可。
用户认证
按服务端实际开启的认证方式选择对应的 Authentication 标签页:
| 服务端开启的认证方式 | taosExplorer 设置 |
|---|---|
| 匿名(默认 / 本指南验证场景) | Authentication 选Anonymous |
| 用户名/密码 | Authentication 选Username,填写服务端创建的用户名密码 |
| OPC UA 用户证书 | Authentication 选Certificates,上传服务端用户证书白名单中对应的证书与私钥(不必与安全通道证书相同) |
:::noteAuthentication → Certificates不是用来"再传一次安全通道证书"。除非 GE OPC UA Server 明确开启了 OPC UA 用户证书认证并把某张证书加入了用户白名单,否则保持Anonymous即可。在常规部署中,证书只用于保护安全通道,不要误把安全通道证书复用到用户认证处。 :::
如果拿不准服务端开启了哪种用户认证,可以先选Anonymous试一次。
信任并映射客户端证书(服务端操作)
在 taosExplorer 中第一次执行检查连通性(Check Connection)通常会失败——这是预期行为,因为 GE OPC UA Server 还没有信任、也没有把新的 taosX 客户端证书映射到任何用户。
在 GE OPC UA Server 主机上打开 OPC UA Server 配置,进入:
OPC UA Server -> Security Certificate / User Association添加或选择 taosX 客户端证书的标识,并把它关联到一个有权限的用户,例如:
| 字段 | 值 |
|---|---|
| Certificate Identifier | client_cert.pem的 SHA1 指纹(去掉冒号) |
| Privileges User Name | 一个有权限的 GE Cimplicity 用户(例如admin) |
关键点在于「映射」二字:GE 服务端不仅要信任这张证书,还必须把证书标识(SHA1 指纹去冒号)显式关联到某个拥有权限的 Cimplicity 用户,证书才能获得数据访问资格。
把证书与该用户关联完成后,回到 taosExplorer 再次执行检查连通性(Check Connection)。通过后即可继续配置点位集(选择数据点位 / 上传 CSV / 告警与事件)、采集模式(subscribe/observe/event)等任务参数并提交任务,相关通用配置细节可参考 OPC UA 数据接入总览。
常见错误排查
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
第一次 Check Connection 报read header failed: EOF | GE OPC UA Server 拒绝/关闭了安全通道握手,因为 taosX 客户端证书还未被信任或还未映射到用户。 | 在服务端添加 taosX 证书标识并关联到一个有权限的用户,再重试。 |
StatusBadSecurityChecksFailed | Security Mode、Security Policy、证书或私钥错误。 | 确认为SignAndEncrypt、Basic128Rsa15,并使用正确的client_cert.pem与client_key.pem。 |
StatusBadCertificateUriInvalid | 证书中没有 taosX OPC UA Application URI。 | 重新生成证书,确认 SAN 中包含URI:urn:taosx-opc:client。 |
| 用户认证相关错误 | taosX 的 Authentication 标签页与服务器侧实际开启的认证方式不匹配。 | 与服务端管理员核对开启的是 Anonymous / Username / OPC UA 用户证书 中的哪一种,再在 taosExplorer 中切到对应的标签页填写凭据。 |
其中read header failed: EOF是 GE CSS 接入中最具代表性的现象:它发生在安全通道握手阶段,本质是服务端在验证客户端证书时主动关闭了连接,而非网络故障。只要完成了上一步的「信任 + 映射」两步操作,重试即可通过。
关键要点
- 推荐参考配置为
SignAndEncrypt + Basic128Rsa15 + Anonymous;用户认证若服务端配置了其他方式,按实际配置选 Username 或 Certificates。 - 当 Security Mode 为
SignAndEncrypt时,taosX 仍然需要一个安全通道客户端证书与私钥。 - 安全通道证书是在Connection Configuration区域上传,不是在Authentication → Certificates标签页。
- GE OPC UA Server 必须把 taosX 证书标识映射到一个有权限的用户(仅信任不映射仍会失败)。
- 服务端证书关联完成后,重新在 taosExplorer 中执行检查连通性(Check Connection)。
延伸阅读
- 生成 taosX OPC UA 客户端证书:证书生成脚本与验证命令(Windows / Linux / macOS)
- OPC UA 数据接入总览:安全模式、安全策略、点位集、采集配置等通用步骤
- Ignition OPC UA Server 集成指南:另一款常见 OPC UA Server 的对照配置流程
【免费下载链接】tdengineTDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps.项目地址: https://gitcode.com/taosdata/tdengine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考