跳到主要内容

Security 加密

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

子页跳转

三种 SecurityMode

public enum MessageSecurityMode { Invalid, None, Sign, SignAndEncrypt }

构造 Session 时传:

using var ua = new DarraOpcUa("opc.tcp://server:4840",
securityMode: MessageSecurityMode.SignAndEncrypt,
clientCertPath: @"C:\certs\client.pfx",
clientKeyPath: "123456");
Mode数据完整性机密性适用
None××开发期 / 内网 / 调试
Sign×防篡改, 不防嗅探
SignAndEncrypt生产推荐

SecurityPolicyUri

支持 (当前实现):

  • http://opcfoundation.org/UA/SecurityPolicy#None
  • http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256 (主用)

UserToken

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

通过构造参数选择:

Token构造参数
Anonymous不传 username
Usernameusername: "...", password: "..."
Certificate(后续版本完善) 用户证书参数
Issued(本 SDK 暂不实现)

CertificateManager (证书工具)

using DarraOpcUa_Client;

// 生成自签证书
CertificateManager.GenerateSelfSigned(
outPath: @"C:\certs\client.pfx",
password: "123456",
commonName: "MyClient",
applicationUri: "urn:my-company:my-client",
validDays: 365);

// 校验证书
var info = CertificateManager.Inspect(@"C:\certs\client.pfx", "123456");
Console.WriteLine($"Subject: {info.Subject}");
Console.WriteLine($"Valid until: {info.NotAfter}");
Console.WriteLine($"SAN URI: {info.SubjectAltNameUri}");

详细见 证书生成与配置.

下一步