페이지 선택

MQTT over TLS/SSL → WIFI 클라이언트 서버연동

이번에는 WIFI 모듈에 TLS/SSL 보안을 적용하여 MQTT 통신을 해볼 것이다.

각자 이전 장에서 CA, Server, Client 인증서와 키는 잘 준비 되었으리라 잠정하고 시작한다.

 

 

1.  시스템 구성

♦ PC에 MQTT 브로커를 실행시킨다.,

♦ 휴대폰의 MQTT 클라이언트를 아래 그림과 같이 토픽(Topic)을 구독, /toto 라는 토픽으로 메시지 발행(puslish) 하도록 준비한다.

♦ EMW3070은  /toto 라는 토픽(Topic)을 구독하고,  /momo 라는 토픽의 메시지를 발행(puslish) 할 것이다..

.

 

 

 

 

2.  PC에 MQTT Blocker/Server 설정, 모바일에는 MQTT Client 설정한다.

 

Step1. 노트패드를 실행  → mosquitto 설정파일(conf)을 오픈 → TLS/SSL 통신을 위한 설정을 기입 → 저장

파일 수정(추가) 내용 설명
port 8883 포트번호 설정
cafile d:\cert\ca.crt ca.crt 파일이 저장된 위니
certfile d:\cert\server.crt server.crt 파일이 저장된 위치
keyfile d:\cert\key.crt key.crt 파일이 저장된 위치

 

 

Step2. PC에서는 먼저 MQTT 브로커/서버 IP 주소를 확인하고, MQTT 브로커(Blocker)를 실행시킨다. → mosquitto -v -c mosquitto.conf

 

Step3. mosquitto_sub -t /momo -p 8883 -h 192.168.0.6 – -cafile d:\cert\ca.crt – -cert d:\cert\client.crt – -key d:\cert\client.key

 

Step4. mosquitto_pub -t /soso -p 8883 -h 192.168.0.6 – -cafile d:\cert\ca.crt – -cert d:\cert\client.crt – -key d:\cert\client.key -m “hello, momo!”

 

 

 

 

3.  WIFI 모듈의 MQTT Client 설정  → 명령절차 와 응답시퀀스

 

No 절차 명령 및 조작
1 통신모듈을 AP에 연결 AT+WJAP=EDWORKS2,edw12345\r
  응답 OK, +WEVNET:STATION UP
2 이벤트 푸시(push)기능 사용 AT+MQTTEVENT=ON\r
  응답 OK
3 MQTT 사용자이름, 암호 설정 AT+MQTTAUTH=testman,test1234\r
  응답 OK
4 호스트 및 포트번호 설정 AT+MQTTSOCK=192.168.0.4,8883\r
  응답 OK
SSL/TLS 보안 설정 시작
5 MQTT 인증서 검증 사용 AT+MQTTCAVERIFY=ON,ON\r
  응답 OK
6 전달할 인증서/암호키 종류 설정 AT+SSLCERTSET=0\r
  응답 OK
7 서버 루트인증서 보내기 서버 루트인증서 파일 내용
  응답 OK
8 전달할 인증서/암호키 종류 설정 AT+SSLCERTSET=1\r
  응답 OK
9 클라이언트 인증서 보내기 클라이언트 인증서 파일 내용
  응답 OK
10 전달할 인증서/암호키 종류 설정 AT+SSLCERTSET=2\r
  응답 OK
11 클라이언트 Private Key 파일 보내기 클라이언트 개인 키 파일 내용
  응답 OK
12 SSL 암호화 사용 설정 AT+MQTTSSL=ON\r
  응답 OK
13 클라이언트 ID 설정 AT+MQTTCID=momo\r
  응답 OK
SSL/TLS 보안 설정 완료
14 MQTT Heartbeat 기간 설정 AT+MQTTKEEPALIVE=10\r
  응답 OK
15 MQTT 자동 재연결 해제 AT+MQTTRECONN=OFF\r
  응답 OK
16 MQTT Power-On 자동연결기능 설정 AT+MQTTAUTOSTART=ON\r
  응답 OK
17 MQTT 서비스 시작 AT+MQTTSTART\r
  응답 OK, +MQTTEVENT:CONNECT,SUCCESS
18 Topic-0 구독 설정 AT+MQTTSUB=0,$aws/things/myLight/shadow/delete/accepted,1\r
  응답 OK, +MQTTEVENT:0,SUBSCRIBE,SUCCESS
19 Topic-1 구독 설정 AT+MQTTSUB=1,$aws/things/myLight/shadow/update/delta,0\r
  응답 OK, +MQTTEVENT:1,SUBSCRIBE,SUCCESS
20 Topic-2 구독하기 AT+MQTTSUB=2,$aws/things/myLight/shadow/update,0\r
  응답 OK
 
+MQTTEVENT:2,SUBSCRIBE,SUCCESS
21 게시(publish) 하기 설정 AT+MQTTPUB=$aws/things/myLight/shadow/update,0\r
  응답 OK
22 데이터 게시하기 AT+MQTTSEND=6\r,”>” 응답을 받은 후 송신데이터 입력: 123456
  응답 +MQTTEVENT:PUBLISH,SUCCESS,
 
동시에 동일한 주제(topic)을 돌려받는다,  +MQTTRECV:2,6,123456
23 Topic-1 구독 취소 AT+MQTTUNSUB=1\r
  응답 OK,+MQTTEVENT:1,UNSUBSCRIBE,SUCCESS
24 MQTT 서비스 해제 AT+MQTTCLOSE\r
  응답 OK
 
+MQTTEVENT:CLOSE,SUCCESS

 

 

4.  모바일에 MQTT Client 설정

 

Viewed Page List