2015-10-06 3 views
0

У меня есть брокера Mosquitto 1.4.4, размещенный в CentOs 6.7.Ошибка мошенничества OpenSSL.

Следуя mosquitto документов (http://mosquitto.org/man/mosquitto-tls-7.html) и How do you set up encrypted mosquitto broker like a webpage which has https?

Я попытался включить шифрованное соединение между клиентом и брокером mosquitto, и получил брокер и работают с TLS включено.

mosquitto version 1.4.4 (build date 2015-09-24 08:08:55+0000) starting 
Config loaded from mosquitto.conf. 
Opening ipv4 listen socket on port 8883. 
Opening ipv6 listen socket on port 8883 

После распространения сертификата центра сертификации (ca.crt), я попытался запустить тестовый раунд с mosquitto_pub в lib_mosquitto, используя команду

mosquitto_pub -h x.x.x.x -p 8883 -t topic -m message --cafile ca.crt 

, что я получаю в mosquitto брокера

New connection from y.y.y.y on port 8883. 
OpenSSL Error: error:140780E5:SSL routines:SSL23_READ:ssl handshake failure 
Socket error on client <unknown>, disconnecting. 

Что может быть исправить? Где я ошибся?

+0

Stack Overflow - это сайт для вопросов программирования и развития. Этот вопрос кажется вне темы, потому что речь идет не о программировании или разработке. См. [Какие темы можно задать здесь] (http://stackoverflow.com/help/on-topic) в Справочном центре. Возможно, лучше спросить [Суперпользователя] (http://superuser.com/) или [Server Fault] (http://serverfault.com/). Также см. [Где я пишу вопросы о Dev Ops?] (Http://meta.stackexchange.com/q/134306). – jww

+0

Я не был уверен, что с ошибкой клиент libmosquitto openssl. Я на самом деле разместил его здесь, так как не было меток для москитов или mqtt на serverfault. Виноват. Все еще я понимаю, что это неправильный форум. Благодарю. –

ответ

3

Самая распространенная причина неудачи, которую я видел здесь, - это плохо настроенные сертификаты. Я бы предложил отладку с клиентом openssl. Это должно дать вам лучшее представление о том, где проблема.

openssl s_client -connect x.x.x.x:8883 -CAfile ca.crt 

Вы также можете попробовать проверить на другом сервере, чтобы убедиться, что клиент работает нормально.

wget http://test.mosquitto.org/ssl/mosquitto.org.crt 
mosquitto_pub -h test.mosquitto.org -p 8883 -t topic -m message --cafile mosquitto.org.crt 
+0

'openssl s_client' должно быть вызвано с' -tls1 -servername 'для обеспечения использования TLS и SNI. Отсутствие TLS и SNI вызывает проблемы на практике. См., Например, [Программное обеспечение для мониторинга в зависимости от того, что openssl не работает на сайтах cloudflare ssl] (http://openssl.6102.n7.nabble.com/monitoring-software-depending-on-openssl-not-working-on-cloudflare -ssl-websites-td60121.html) в списке рассылки пользователей OpenSSL. Кроме того, вы не должны терять время с вопросами, где OP не поддерживает важную информацию, такую ​​как имя сервера. Мы не можем проверить конфигурации или проверить предлагаемые исправления. – jww

+0

Клиент @ralight openssl отлично работает. Проблема должна быть с клиентом libmosquitto. Собираюсь попробовать других клиентов. –

+0

@jww Я согласен с тем, что это не вопрос программирования (я просто ответил автоматически, не задумываясь о том, где был вопрос), но остальная часть вашего комментария в этом случае не нужна - сервер, о котором идет речь, только поддерживал TLS, а не SSL , и не поддерживает SNI. – ralight

Смежные вопросы