跳到主要内容

Security 加密

本节是 SDK 加密相关 API 与证书工具.

子页跳转

三种 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#None
  • http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256 (主用)

构造时 securityPolicyUri = null 让 SDK 按 mode 自动选: None → #None, 其他 → #Basic256Sha256.


UserToken

public enum Enums.UserTokenType { Anonymous, Username, Certificate, Issued }

通过构造参数选择:

Token构造参数
Anonymous不传 username
Usernameusername: "...", 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. 详见 构造函数.

详细见 证书生成与配置.

下一步