传输方式

TLS-PSK

qianmoQqianmoQ· 更新于 2026-10-01· 阅读 5 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

使用预共享密钥(pre-shared key)而非证书进行认证的 TLS。通信双方配置相同的标识和密钥,且不涉及任何证书基础设施——正因如此,它才能用于那些过小而无法验证证书链的设备,以及没有 PKI 体系的工厂。

它与 TLS 传输 打包在同一个构件(artifact)中,并通过其专属的传输代码来选择。

传输语法

{IP address or hostname}[:{port}]

示例

modbus-tcp:tls-psk://192.168.1.100:802?tls-psk.psk-identity=line-3&tls-psk.psk-key=00112233445566778899aabbccddeeff

名称
类型
默认值
必需
说明
名称
TLS-PSK
代码

tls-psk

Maven 依赖

<dependency>
  <groupId>org.apache.plc4x</groupId>
  <artifactId>plc4j-transports-tls</artifactId>
  <version>1.0.0</version>
</dependency>

配置选项:

tls-psk.psk-identity

STRING

用于 TLS-PSK 身份验证的 PSK 标识字符串。必须与 psk-key 一起使用。

tls-psk.psk-key

STRING

用于 TLS-PSK 认证的十六进制字符串形式的 PSK 密钥。必须与 psk-identity 一起使用。

tls-psk.log-session-keys

BOOLEAN

false

以 SSLKEYLOGFILE 格式将 TLS 会话密钥记录到审计日志中,以便使用 Wireshark 进行解密。

tls-psk.connect-timeout-ms

INT

5000

以毫秒为单位的连接超时时间。

tls-psk.read-timeout-ms

INT

0

以毫秒为单位的套接字读取超时时间。0 表示不超时。

tls-psk.write-timeout-ms

INT(整数)

0

以毫秒为单位的 Socket 写入超时时间。0 表示无超时。

tls-psk.no-delay

BOOLEAN

true

启用 TCP_NODELAY(禁用 Nagle 算法)。

tls-psk.keep-alive

BOOLEAN

false

启用 SO_KEEPALIVE。

tls-psk.send-buffer-size

INT

81920

发送缓冲区大小(字节)。0 表示使用系统默认值。

tls-psk.receive-buffer-size

INT

81920

以字节为单位的接收缓冲区大小。0 表示使用系统默认值。

tls-psk.local-address

STRING

要绑定的本地地址(可选)。若未设置,则使用默认值。

tls-psk.local-port

INT

0

要绑定的本地端口(可选)。0 表示使用临时端口。

tls-psk.psk-identity 与 tls-psk.psk-key 是成对出现的——密钥采用十六进制编码,若只提供两者之一,连接将失败。其余套接字选项继承自 TCP transport。

| | tls-psk.log-session-keys=true 会将会话密钥以 SSLKEYLOGFILE 格式写入 audit-log,从而可以解密该连接的 Wireshark 抓包数据。这会把读取流量的能力交到任何持有该日志的人手中——请仅在测试系统上使用。 |

|
|---|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

评论

登录后参与评论

正在加载评论…