shuraf, У Вас нет понимания, я думаю, канального и интерфейсного уровня.
На канальном уровне ЕСП устанавливает защищенное соединение и при этом сертификата с публичным ключом, который приходит от хоста, достаточно для того чтоб проверить подпись хостового хелло. Далее для выполнения запросов для mqtt, интерфейсный уровень предполагает аутентификацию клиента по логину и паролю и клиент mqtt на ЕСП успешно с этим справляется.
Что касается клиентов на питоне и spyMQTT, то не ясен вообще сценарий установления защищенного соединения у них. Если они не проходят канальный уровень, то что говорить об интерфейсном, до логина просто не доходит.
Если используется вторая фаза хендшейка, т.е. кроме аутентификации хоста требуется выполнить аутентификацию клиента, то на стороне хоста должен быть сертификат, который удостоверяет подлинность сертификата клиента.
Если совсем просто (для двойной аутентификации):
1. Генерим ключи и изготавливаем самоподписанный сертификат центра эмиссии.
2. Генерим ключи для хоста и строим сертификат с публичным ключом, подписываем его на ключе центра эмиссии.
3. Для клиента аналогично генерим ключи и строим сертификат с публичным ключом, подписываем его на ключе центра эмиссии.
Итого: На хосте и клиенте есть сертификат сертификат центра эмиссии и свои ключ и сертификат с публичным ключом.
А зачем Вам нужен клиент на питоне и spyMQTT?
Просто я использовал один и тот же код mqtt клиента на ЕСП и на ПК, один подписывается другой публикует и наоборот, и проблем как то и не было.