ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

openplc runtime 4.0 安全( 英译中)

openplc runtime 4.0 安全( 英译中)

openplc runtime 4.0 安全( 英译中)

概述

OpenPLC Runtime v4 实现了多层安全防护,以防止常见漏洞并确保在工业环境中的安全运行。

TLS/HTTPS

自签名证书

运行时在首次运行时自动生成自签名 TLS 证书:

证书文件:

  • webserver/certOPENPLC.pem- 证书
  • webserver/keyOPENPLC.pem- 私钥

证书详情:

  • 密钥大小:2048 位 RSA
  • 有效期:365 天
  • 主题:CN=localhost
  • 主题备用名称:localhost、127.0.0.1 以及检测到的 IP 地址

实现:webserver/credentials.py

证书生成

证书生成过程包括安全验证:

  1. 主机名验证:防止主机名字段中的命令注入
  2. IP 地址验证:确保 IP 格式有效
  3. 路径验证:防止证书文件路径中的路径遍历
  4. 自动续期:检查证书有效性,如果过期则重新生成

关键函数:

CertGen.generate_self_signed_cert(cert_file,key_file)CertGen.is_certificate_valid(cert_file)

使用自定义证书

要使用自定义证书(例如来自 Let’s Encrypt):

  1. webserver/certOPENPLC.pem替换为您的证书
  2. webserver/keyOPENPLC.pem替换为您的私钥
  3. 确保证书包含所有必要的主机名/IP 地址
  4. 重新启动运行时

证书链:
如果使用证书链,请串联证书:

catyour_cert.pem intermediate.pem root.pem>certOPENPLC.pem

认证

JWT 令牌

运行时使用 JSON Web 令牌 (JWT) 进行身份验证:

令牌存储:

  • 密钥存储在/var/run/runtime/.env
  • 256 位十六进制密钥(64 个字符)
  • 首次运行时自动生成

令牌使用:

  • WebSocket 调试接口需要 JWT 认证
  • 令牌通过 REST API 登录端点获取
  • 可以通过重新生成密钥来撤销令牌

环境变量:

JWT_SECRET_KEY=<64 字符十六进制字符串>

<

返回列表