使用免费的 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 服务器的主要内容,如果未能解决你的问题,请参考以下文章