2-полосная ошибка Mosquitto MQTT
Я новичок в MQTT. Я создаю брокера комаров с помощью ssl и успешно подключаюсь. Мои команды для создания сертификатов как:
openssl req -new -x509 -days durations -keyout mqtt_ca.key -out mqtt_ca.crt
openssl genrsa -des3 -out mqtt_server.key size_bits
openssl req -out mqtt_server.csr -key mqtt_server.key -new
openssl x509 -req -in mqtt_server.csr -CA mqtt_ca.crt -CAkey mqtt_ca.key -CAcreateserial -out mqtt_server.crt -days durations*
В mosquitto.conf:
port 8883
cafile your_path/mqtt_ca.crt
certfile your_path/mqtt_server.crt
keyfile your_path/mqtt_server.key
require_certificate false
tls_version tlsv1.1
Но это только односторонняя связь. Я хочу установить для `require_certificate значение true, но я не знаю, как создавать клиентские сертификаты и изменять mosquitto.conf. Пожалуйста, покажи мне, как это сделать. Спасибо вам большое!
1 ответ
Создание центра сертификации слишком детально, чтобы его можно было здесь описать, но есть множество примеров в Интернете, например, есть много примеров того, как создать свой собственный центр сертификации (ЦС) в Интернете, например
https://jamielinux.com/docs/openssl-certificate-authority/
Для сертификата брокера CN должен соответствовать имени хоста машины, на которой работает брокер.
Для клиентских сертификатов CN может быть чем угодно.
Единственные изменения в mosquitto.conf
файл будет убедиться, что cafile
точки входа в сертификат CA, который вы генерируете в начале инструкции по настройке CA.
Если вы хотите обеспечить соблюдение require_certificate true
тогда вы, вероятно, должны также посмотреть на use_identity_as_username true
а также для использования CN из сертификата клиента в качестве имени пользователя при сопоставлении с ACL