我有一个使用socat
以下命令的工作客户端/服务器场景:
服务器
socat openssl-listen:5000,reuseaddr,cert=server.pem,cafile=server.crt,verify=0 STDIO
客户
socat stdio openssl-connect:localhost:5000,cert=server.pem,cafile=server.crt,verify=0
这是一个更大系统的一部分,但是上面的命令对于我们想要实现的效果很好。但是,我需要确保 TLS v1.3 正在使用中,并确保它是唯一使用的加密版本。我可以通过以下方式确保使用 1.2 版:
socat - OPENSSL-LISTEN:443,method=TLS1.2,verify=0,cert=cert.pem,key=key.pem
openssl 是最新的(1.1.1 版本),应该支持 TLS1.3
在撰写本文时(2020 年 2 月),我能找到的几乎所有关于 socat 的文档都只提及设置 TLS1.2,而没有提及 TLS1.3。对于openssl
命令行,您可以设置-tls1_3
,例如:
openssl s_server -accept 443 -tls1_3 -ciphersuites TLS_AES_256_GCM_SHA384 -key key.pem -cert cert.pem
[1] https://8gwifi.org/docs/tlsv13.jsp
此命令有效(与相关s_client
命令一起),但我无法获得通过 socat 传入的相同参数。