2-полосная ошибка Mosquitto MQTT - PullRequest
0 голосов
/ 30 июня 2018

Я новичок в 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 Ответ

0 голосов
/ 01 июля 2018

Создание центра сертификации слишком детально, чтобы его можно было здесь рассмотреть, но есть много примеров в Интернете, например, есть много примеров того, как создать свой собственный центр сертификации (CA), например, онлайн.

https://jamielinux.com/docs/openssl-certificate-authority/

Для сертификата брокера CN должен соответствовать имени хоста машины, на которой работает брокер.

Для клиентских сертификатов CN может быть чем угодно.

Единственное изменение в файле mosquitto.conf будет состоять в том, чтобы убедиться, что запись cafile указывает на сертификат CA, который вы генерируете в начале инструкций по настройке CA.

Если вы хотите применить require_certificate true, вам, вероятно, следует также взглянуть на use_identity_as_username true, чтобы использовать CN из сертификата клиента в качестве имени пользователя при сопоставлении с ACL

...