Я написал программы paho-client (1-издатель, 1-подписчик), используя C. И я могу передавать данные через брокера mosquitto с TLSv2. Теперь я хочу включить возобновление сеанса с использованием идентификатора сеанса.
Какие изменения нужно сделать в моем файле конфигурации брокера mosquitto и в моих клиентских программах на C ...
Openssl сообщает, что серверу необходимо генерировать идентификаторы сеансов, что в данном контексте означает mosquitto. Однако mosquitto.conf
не имеет возможности настраивать кеш (хранить идентификаторы сеансов). Я проследил пакеты через Wireshark, пакеты зашифрованы, но каждый раз отправляется новый билет сеанса. Я просто хочу оптимизировать рукопожатие, используя возобновление сеанса (желательно с использованием идентификаторов сеанса или билетов сеанса).
Это обсуждалось в списке рассылки разработчиков mosquitto еще в августе 2017 года здесь.
Подразумевается, что при настройке на стороне брокера mosquitto будет кэшировать идентификаторы сеансов в течение 300 секунд.
Что касается клиентской стороны, похоже, что для этого не было встроенной поддержки, и вам нужно будет изучить использование SSL_set_session()
для применения сеанса сохранения к сокету и SSL_CTX_sess_set_new_cb()
для сохранения сеанса для повторного использования.
Лучшее место для продолжения - список рассылки.
Отправляйте сообщения в список рассылки разработчиков, а не на форум, гораздо больше шансов получить ответ. Кроме того, этот пост находится в одной строке, поэтому я сомневаюсь, что его читали так много раз.
Я уже просмотрел список рассылки разработчиков, от него мало толку. И это касается сессионных билетов, никакой информации об идентификаторах сессий не дается. Для стороны клиента я использовал SSL_set_session () и ссылался на эту ссылку nachtimwald.com/2014/10/06/client-side-session-cache-in-open ssl, которая выполняет возобновление сеанса с сокетами. Так как MQTT (mosquitto) не работает с сокетами, я не могу применить информацию, представленную в ссылке, в моих клиентских программах.