使用免费的 OPCUA Python 客户端代码和 Basic256Sha256 使用签名和加密技术连接 WinCC OPCUA 服务器

Posted

技术标签:

【中文标题】使用免费的 OPCUA Python 客户端代码和 Basic256Sha256 使用签名和加密技术连接 WinCC OPCUA 服务器【英文标题】:Connecting WinCC OPCUA Server using sign and encryption techniques using free OPCUA Python Client Code & Basic256Sha256 【发布时间】:2020-05-12 11:41:55 【问题描述】:

**我正在尝试使用 Sign&Encrpyt 连接启用了 Basic256Sha256 的 WinCC OPCUA 服务器。

如何在/从 WinCC 上生成/获取 .der 文件以及从 WinCC 生成/获取 .pem 文件?

WinCC OPCUA 服务器部署在 AWS Windows EC2 实例上。**

什么是客户端连接代码,用于连接到启用了带有 Sign&Encrpyt 的 Basic256Sha256 的 WinCC OPC UA 服务器。 ?

我的 Python OPCUA 客户端需要 .der 文件和 .pem 文件。

如何生成.der文件和.pem文件?

生成文件后,我需要将文件保存在 WinCC OPC UA 服务器和 OPC UA 客户端上吗?

代码 1:

 client = Client("opc.tcp://localhost:4840/freeopcua/server/")
    #client = Client("opc.tcp://localhost:53530/OPCUA/SimulationServer/")
    client.set_security_string("Basic128rsa15 ,SignAndEncrypt,certificate-example.der,private-key- 
     example.pem")
    client.application_uri = "urn:example.org:FreeOpcUa:python-opcua"
    client.secure_channel_timeout = 10000
    client.session_timeout = 10000

代码 2:

 logging.basicConfig(level=logging.WARN)
 client = Client("opc.tcp://localhost:53530/OPCUA/SimulationServer/")
 client.load_client_certificate("server_cert.pem")
 client.load_private_key("mykey.pem")

代码 3:

logging.basicConfig(level=logging.DEBUG) client = Client("opc.tcp://localhost:53530/OPCUA/SimulationServer/") client.set_security_string("Basic128rsa15 ,Sign,certificate-example.der,private-key-example.pem")

【问题讨论】:

【参考方案1】:

只是猜测WinCC的版本(假设是7.X).der文件:

C:\Program Files (x86)\Siemens\WinCC\opc\UAServer\PKI\CA\certs

您最常使用文件管理器手动移动您的 python opc ua 客户端被拒绝的证书。 WINCC OPC UA 服务器使用的证书存储在“OpcUaServerWinCC.xml”配置文件的设置中:

C:\Program Files (x86)\Siemens\WinCC\opc\UAServer\OpcUaServerWinCC.xml

项目特定的配置文件存储在 WinCC 项目文件夹下:

\opc\UAServer"

是的,证书必须随时可用且有效。 此外,由于安全机制,时间同步非常重要。

WinCC OPC UA 的配置可以在您的 wincc 安装帮助文件中找到,查找“接口--> OPC - 开放连接--> WinCC OPC UA 服务器”和客户端“通信--> OPC UA WinCC频道”

这是让您入门的东西还是您不使用 wincc 7 ?

【讨论】:

以上是关于使用免费的 OPCUA Python 客户端代码和 Basic256Sha256 使用签名和加密技术连接 WinCC OPCUA 服务器的主要内容,如果未能解决你的问题,请参考以下文章

用OPCUA做客户端,可以连接已经建立好的OPC服务器么?

如何使用 node-opcua 客户端信任自签名服务器证书

opc ua客户端到服务器

OPCUA标准java实现 Milo库

如何使用 opc ua 从 PLC 读取信号?

Python OPC UA 客户端安全策略(基本 256sha256)?