본문 바로가기
IT, 개발/서버

MQTT 웹소켓/TCP 통신하는 방법 (SSL 인증서 설정, Mosquitto, WebSocket)

by 개발자스터디 2023. 6. 16.
반응형

 

웹에서 MQTT 통신을 하기 위한 Broker 세팅을 해보려고 합니다. 

Mosquitto Broker 설치 후 websocket 세팅하고 SSL 인증서 적용하여 통신하는 방법에 대해 알아보도록 하겠습니다.

 

1. Mosquitto 설치 

 

설치 가능한 목록을 확인하는 명령어입니다. 

 

$ apt list mosquitto*

 

mosquitto
mosquitto-clients

 

위 두 항목을 설치하면 됩니다.

 

* mosquitto 

Mosquitto Broker 패키지만 설치합니다. Mosquitto를 Broker로만 사용하려는 경우에는 mosquitto 패키지만 설치해도 됩니다.

 

* mosquitto-clients

Mosquitto Broker에 연결하고 메시지를 게시하거나 받는 데 사용되는 명령줄 클라이언트 유틸리티를 포함합니다. 

mosquitto-clients 패키지를 설치하면 명령어로 Publish, Subscribe 할 수 있습니다. 

 

 


아래 명령어로 설치를 진행합니다. 

 

$ sudo apt install mosquitto
$ sudo apt install mosquitto-clients

 

 

설치가 완료되고 잘 실행되고 있는지 확인해 봅니다. 

$ sudo systemctl status mosquitto.service

 

 

2. config 파일

 

이제 config 파일을 설정해 보도록 하겠습니다.

 

설치가 완료된 후 MQTT 통신을 위한 기본 포트는 1883입니다.

하지만 설정파일에서 변경할 수 있습니다.

 

설정파일의 경로는 통상적으로 아래 경로에 위치합니다.

/etc/mosquitto/mosquitto.conf

 

아래 설정파일 예제를 참고해서 각자 상황에 맞게 설정하시기 바랍니다.

 

# TCP MQTT
listener 1883
protocol mqtt

# WEBSOCKET MQTT
listener 2883
protocol websockets

# SSL
cafile /path/file
certfile /path/file
keyfile /path/file

 

SSL 인증서를 사용하여 통신하고자 하는 경우 해당 파일 경로를 정확히 입력하여 사용합니다.

설정 파일을 변경한 후에는 서비스를 재시작해야 적용됩니다. 

 

Mosquitto 서비스 재시작 명령어는 아래와 같습니다.

$ sudo systemctl restart mosquitto

 

 

 

반응형

 

 

3. 로그 확인 

 

Mosquitto의 로그는 일반적으로 시스템 로그를 통해 확인할 수 있습니다. 

기본적으로 Mosquitto는 syslog를 사용하여 로그를 기록하기 때문에 시스템 로그를 확인하면 Mosquitto의 로그도 확인할 수 있습니다.

$ sudo tail -f /var/log/messages | grep mosquitto

 

또한 설정파일에서 특정 파일에 로그를 남길 수 있도록 설정할 수 있습니다.

 

# LOG 
log_dest file /etc/mosquitto/mosquitto.log
log_type all
log_type debug

 

 

4. Publish / Subscribe

 

프런트에서 MQTT 통신하는 방법에 대해서는 이전 글을 참고하시기 바랍니다.

https://itstudy402.tistory.com/17

 

자바스크립트 MQTT 통신 예제 (mqttws31.js / mqttws31-min.js)

MQTT client 연결하여 메시지 받는 방법과 메시지 보내는 방법에 대해 알아보도록 하겠습니다. 저는 웹 개발하면서 모든 화면에서 include 하는 header 파일에 MQTT 클라이언트 코드를 작성하고 각 화면

itstudy402.tistory.com

 

 

 

728x90
반응형