Security 加密
本节是 SDK 加密相关 API 与证书工具.
子页跳转
- 生成证书 / 服务端互信配置 / 故障排查请参考 证书生成与配置.
- Session 构造时如何传安全参数请参考 构造函数.
- 服务端支持的安全模式探测请参考 GetEndpoints.
三种 SecurityMode
public enum Enums.MessageSecurityMode { Invalid, None, Sign, SignAndEncrypt }
构造 Session 时传:
try (OpcUaSession ua = OpcUaSession.secureSignAndEncrypt(
"opc.tcp://server:4840", "C:\\certs\\client.pfx")) {
ua.connect();
}
| Mode | 数据完整性 | 机密性 | 适用 |
|---|---|---|---|
None | × | × | 开发期 / 内网 / 调试 |
Sign | ✓ | × | 防篡改, 不防嗅探 |
SignAndEncrypt | ✓ | ✓ | 生产推荐 |
SecurityPolicyUri
支持 (当前实现):
http://opcfoundation.org/UA/SecurityPolicy#Nonehttp://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256(主用)
构造时 securityPolicyUri = null 让 SDK 按 mode 自动选: None → #None, 其他 → #Basic256Sha256.
UserToken
public enum Enums.UserTokenType { Anonymous, Username, Certificate, Issued }
通过构造参数选择:
| Token | 构造参数 |
|---|---|
| Anonymous | 不传 username |
| Username | username: "...", password: "..." |
| Certificate | (后续版本完善) 用户证书参数 |
| Issued | (本 SDK 暂不实现) |
加密快捷工厂 (常用)
public static OpcUaSession secureSign(String endpointUrl, String clientCertPath)
public static OpcUaSession secureSignAndEncrypt(String endpointUrl, String clientCertPath)
封装好默认参数 (Basic256Sha256, autoReconnect, KeepAlive 10s), 只需 endpoint + PFX. 详见 构造函数.
详细见 证书生成与配置.