Как настроить Hivemq с проверкой подлинности сертификата клиента

Я пытаюсь настроить HiveMQ с проверкой подлинности сертификата клиента более двух дней, и я не пошел дальше, чем несколько (бесполезных) ошибок.

Я создал сертификаты в соответствии с руководством. Не работает, всякий раз, когда я пытаюсь соединиться с mosquitto_pub, я получаю сообщение об ошибке: произошла ошибка TLS.

Я попытался создать сертификаты, используя это руководство. (TL;DR) Вот шаги:

Generate device key and keystore
keytool -genkey -alias iotdevice1 -keyalg RSA -keypass devicepass -storepass devicepass -keystore iot_device_keystore.jks -storetype jks

Export device certificate from keystore
keytool -export -alias iotdevice1 -storepass devicepass -file iotdevice1.cer -keystore iot_device_keystore.jks

Add device certificate into broker truststore
keytool -import -v -trustcacerts -alias iotdevice1 -file iotdevice1.cer -keystore hivemq-trust-store.jks -keypass devicepass -storepass brokerpass -storetype jks

Generate broker key and keystore
keytool -genkey -alias hivemq -keyalg RSA -keypass brokerpass -storepass brokerpass -keystore hivemq.jks -storetype jks

Export broker certificate
keytool -export -alias hivemq -storepass brokerpass -file hivemq.cer -keystore hivemq.jks

У меня нет магазина доверия устройств

Add the certificate into device truststore
keytool -import -v -trustcacerts -alias broker -file hivemq.cer -keystore iot_device_truststore.jks -keypass brokerpass -storepass brokerpass -storetype jks

Затем я экспортировал сертификаты из хранилища ключей устройства, используя

keytool -importkeystore -srckeystore iot_device_keystore.jks -destkeystore keystore.p12
-deststoretype PKCS12 -srcalias <jkskeyalias> -deststorepass devicepass
-destkeypass devicepass

Затем преобразовать его в формат PEM

openssl pkcs12 -in keystore.p12  -nodes -nocerts -out key.pem
openssl x509 -inform der -in iotdevice1.cer -out iotdevice1.pem

Когда я использую

openssl s_client -connect server:port -CAfile hivemq.pem -cert iotdevice1.pem -key key.pem 

Он подключается (отображается в веб-интерфейсе HiveMQ), проверяет ключи и возвращает код подтверждения Verify: 0 (хорошо)

Мне требуется клиент-сертификат-аутентификация в config.xml.

Когда я использую что-то кроме openssl, я получаю ошибки.

Основная проблема в том, что ESP-32 не может подключиться. Мне нужно предоставить сертификаты в формате pem (как я сделал с openssl), и он должен подключиться. Это не так. Нет кода ошибки или чего-либо еще.

При открытии страницы с помощью Firefox я получаю SSL_ERROR_BAD_CERT_ALERT, но для чего?

У меня немного нет решений по этому вопросу. Я работал с сертификатами раньше, но не могу вспомнить, что это было большой проблемой, чтобы правильно его настроить.

Немного не по теме: Для группы openssl и keytool: Make проще использовать SSL/TLS. Многие разработчики перестают пытаться настроить его, потому что это выглядит невозможным для установки (из-за этих проблем)

0 ответов

Другие вопросы по тегам