У меня есть рабочий сценарий клиент / сервер, использующий 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 г.) почти вся документация, которую я могу найти для 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.