Scikit Web

MQTT WebSocket SSL - letsencrypt 사용하기 본문

웹프로그래밍/WebSocket

MQTT WebSocket SSL - letsencrypt 사용하기

Keun0 2022. 5. 3. 21:17
728x90
반응형

1. Paho Javascript Client 사용

2. letsencrypt 을 사용하여 ssl 인증서 생성

 

본인 만의 도메인 주소가 있고..

letsencrypt 을 사용하여 ssl 인증서 생성 하여 SSL MQTT WebSocket SSL 통신을 하는 예제 이다.

 

MQTT 2.0+ 사용 하였으며 사용한 conf 는 아래와 같다.

log_type all
websockets_log_level 255

listener 8883
protocol websockets
certfile /etc/letsencrypt/live/example.com/cert.pem
cafile /etc/letsencrypt/live/example.com/chain.pem
keyfile /etc/mosquitto/certs/example.com/privkey.pem

거의 모든 예제가.. keyfile fopen permission denied 에 대하여는 설명이 없었는데..

 

/var/log/mosquitto/mosquitto.log 로그 파일을 열어보니..

 

fopen:Permission denied 이 발생 하고 있었다..

 

/etc/letsencrypt/live 폴더의 권한과 소유자 정보를 바꿔서 해보라는 등의.. 설명들은 많았으나.. 다 안되서..

 

그냥.. letsencrypt/live/example.com/ 폴더 밑에 생긴 privkey.pem 파일을 열고 내용을 복사한다음

 

위와 같이 mosquitto certs 에 파일을 생성해주고.. 실행하니 정상적으로 실행이 되었다.

 

mqttClient.connect({
              useSSL: true,
              userName: "username",
              password: "password",
              onSuccess: onConnect,
              onFailure: onFailureCallback,
            });

 

자바스크립트에서는 위와 같이 옵션만 설정하고 접속 시켜보니 문제없이 동작하는 것을 확인하였다.

 

728x90
반응형
Comments