为 PLCnext Control 上的 OPC UA 配置自定义安全证书
这是 2018 年 11 月首发文章的更新版。
所有 PLCnext Controls 均含嵌入式 OPC UA 服务器。此服务器像所有 OPC UA 服务器一样,包含使用公钥加密与客户端建立安全连接的选项。本指南描述如何使用自己的安全证书(含私钥)与 PLCnext Control 建立安全 OPC UA 连接。
管理 OPC UA 服务器证书的一般信息请参阅:
- PLCnext Engineer 集成帮助系统的 OPC UA Settings 章节。
- PLCnext Info Center:
- 嵌入式 OPC UA 服务器 (eUA)
- 证书认证。
简介
PLCnext Control 嵌入式 OPC UA 服务器需要 X.509 证书确保与 OPC UA 客户端的可信通信。主要有四类证书可用:
选项 1 — 自动生成的自签名证书。
- 所需证书由 PLC 自动创建。
- 设置简单。
- 适用于测试和安全局域网的永久使用。
选项 2 — 手动生成的自签名证书。
- 相比选项 1 无额外安全优势,但给管理员更多证书管理控制权。
选项 3 — 由您自己的证书颁发机构 (CA) 签名的证书。
- 相比选项 1 和 2 无额外安全优势,但允许更结构化的证书管理。
选项 4 — 由受信任证书颁发机构颁发的证书
- 需从 Symantec 或 GeoTrust 等受信任第三方 CA 购买证书。这是公共或其他不安全网络的推荐选项,因为所有客户端应接受受信任 CA 签名的证书。
先决条件
成功执行以下过程需:
- 对公钥加密和 X.509 证书有基本理解。
- 对 OPC,特别是 OPC UA 技术有基本理解。
以下过程使用以下硬件和软件准备:
- AXC F 2152 控制器,固件版本 2020.6.1
- PLCnext Engineer 版本 2020.6
- UAExpert 版本 1.5.1
- XCA 版本 2.3.0 已创建数据库
背景阅读
- 公钥加密
- X.509
- 创建 X.509 证书 (PDF)
- 什么是 OPC?
- OPC 统一架构
- 面向管理员的 OPC UA 安全模型 (PDF)
过程
选项 1 — 自动生成的自签名证书
这是在 PLCnext Engineer 中创建新项目时的默认选项。
- 按 技术支持 YouTube 频道视频 配置 OPC UA 服务器。
这自动在名为 OPC UA-self-signed 的 Identity Store 中创建自签名证书,可在 PLC 基于 Web 的管理页面 安全 部分的 证书认证 窗口看到。
现在,从 UA Expert 建立到 OPC UA 服务器的连接时,可见自签名证书名称 “eUAServer@axc-f-2152-1”:
因证书非受信任 CA 签名,用户需显式信任此证书。
确认证书可信后,UA Expert 可能显示 “BadCertificateHostNameInvalid” 错误。因连接 OPC UA 服务器用的 URL 与证书 IPAddresses 或 DNSnames 字段无匹配项(见上文 UA Extensions 部分)。可在 PLCnext Engineer OPC UA 设置窗口添加相应条目修正。
注意,UA Expert 虽可忽略 BadCertificateHostNameInvalid 错误继续连接,但许多其他 OPC UA 客户端遇此错误将直接拒绝连接。
选项 2 — 手动生成的自签名证书
- 在 XCA 中创建新自签名证书。
- 在 “File” 菜单打开(或创建)数据库。
- 在 “Certificates” 标签点 “New Certificate” 按钮:

- 下一对话框中 “Source” 标签激活。签名选项 “create a self signed certificate” 默认已勾选:

- 切到 “Subject tab” 填写字段。示例如下。

- 点 “Generate a new key” 按钮。为此证书生成唯一私钥。
- 在 “Extensions” 标签设置证书有效期,在 “X509v3 Subject Alternative Name” 字段添加条目。此字段不可空 — 这是 OPC UA 规范要求。选项 1 提到的 IPAddresses 和 DNSnames 字段对应这些字段
- .

- 点 OK 创建证书。
- 证书创建后,在 XCA 主窗口选中证书点 “Export”。以 “PEM + key (*.pem)” 格式导出证书和未加密私钥:

- 在 PLCnext Engineer 中,将 OPC UA 服务器 “Certificate” 字段从 “Self signed by controller” 改为 “File on controller”。
- 将 PLCnext Engineer 项目下载到 PLC。
- 在 PLC 基于 Web 的管理页面,进入 安全 部分的 证书认证 窗口。新建 OPC UA-configurable Identity Store。
- 将步骤 2 创建的文件中的证书和密钥加载到新 Identity Store:
- 点 “Set” 按钮选择证书/密钥文件加载证书。会出错,提示现有密钥对与新证书不匹配。
- 点 “Set” 按钮选择证书/密钥文件加载私钥。错误消失。
- 重启 PLCnext Runtime,使 OPC UA 服务器拾取新证书。
现在可使用此手动创建的自签名证书连接客户端到 OPC UA 服务器。使用 UA Expert 连接时可见自定义证书详情。
选项 3 — 由您自己的证书颁发机构签名的证书
在 XCA 中可创建自己的证书颁发机构 (CA),并用此 CA 签名证书。额外步骤见文初引用的 “Creating X.509 certificates” 文档。注意导出 .pem 文件时,导出格式必须为 “PEM chain (*.pem)”。
同选项 2,此证书应加载到 OPC UA-configurable identity store。
选项 4 — 由受信任证书颁发机构颁发的证书
此情况下,证书由受信任 CA 购买并签名。同样应加载到 OPC UA-configurable identity store。若 CA 为 OPC UA 客户端所知,连接 OPC UA 服务器时应无警告或错误。
在中央服务器管理证书
不在 PLC 手动加载安全证书,而是从 OPC UA 全局发现服务器向 PLC 推送证书。这有助于管理包含多个 OPC UA 服务器网络上的安全证书。
此主题将在另一篇文章讨论。
工业技术
- Arduino Modbus 从机开发全攻略:基于 RS485 扩展板的分步实现指南
- 用 Alexa 控制电视:Arduino 与 ESP8266 实现语音遥控
- 以ISO 9004升级制造运营:卓越质量管理实战指南
- 在 E3.series 2021 中构建完整连接表:完整指南
- 掌握电气设计:用 E3.schematic 功能优化项目
- 识别电气设计流程中的薄弱环节:实战指南
- 精准核算员工全成本:含间接费用的完整计算指南
- 高效沟通供应链安全风险:合作伙伴协同新范式
- 利用边缘 AI 优化仓储与制造运营:Advantech 与 NVIDIA 联合网络研讨会
- 以数字化作业指导书超越竞争对手
- 将阿里云连接器与 PLCnext 集成:分步指南
- 通过 Wake-on-LAN 利用 PLCnext 远程唤醒 PC