::: IT인터넷 :::

mongo-express에 SSL 적용하기

곰탱이푸우 2022. 3. 28. 08:20

mongo-express는 기본적으로 http로 설정되어 있다.

SSL (https)를 설정하기 위해서는 추가 설정이 필요하다.

 

Docker를 사용하여 MongoDB와 mongo-express를 설정하는 방법은 다음 포스팅을 참고한다.

 

Docker로 MongoDB 설정하기

MongoDB는 대표적인 NoSQL 데이터베이스 서비스이다. NoSQL은 기존 RDBMS의 단점을 극복하고, 보다 유연한 데이터 저장과 처리를 위해 제안되었다. 기존 RDBMS는 불가능한 스키마 (Schema)의 수평적 확장

www.bearpooh.com

 

자체 서명 인증서를 생성하는 방법은 아래 포스팅을 참고한다.

 

자체 서명 인증서 만들기

Docker로 테스트하거나 실서비스 운영을 하다보면 HTTPS 접근 방법에 대한 고민을 하게 된다. HTTPS를 사용하려면 공인 인증서 또는 사설 인증서를 적용해야 한다. 공인 인증서를 사용하는 방법은 크

www.bearpooh.com

 

 

docker-compose.yml 수정

mongo-express에 SSL을 적용하려는 경우 docker-compose.yml 파일에 아래 내용을 추가한다.

$ vi docker-compose.yml

## 중략 ##
  mongo-express:
    ## 중략 ##
    environment:
      ## 중략 ##
      - ME_CONFIG_SITE_SSL_ENABLED=true    # SSL 연결 설정 (기본값 false)
      # SSL 연결을 위한 인증서 파일 경로
      - ME_CONFIG_SITE_SSL_CRT_PATH='/node_modules/mongo-express/certs/파일명.crt'
      # SSL 연결을 위한 키 파일 경로
      - ME_CONFIG_SITE_SSL_KEY_PATH='/node_modules/mongo-express/certs/파일명.key'
    volumes:
      - /path/to/certs:/node_modules/mongo-express/certs 
      # 현재 경로 하위에 생성하면 ./certs:/node_modules/mongo-express/certs

    ## 중략 ##

 

mongodb와 mongo-express 컨테이너 재시작

아래 명령어를 사용하여 Docker 컨테이너를 생성한다.
$ docker-compose up -d

 

SSL 적용 여부 확인

기존의 http://localhost:8081로 접속하면 연결되지 않는다.
 

 

대신 https://localhost:8081로 접속하면 정상 연결이 된다.
 
Docker 컨테이너를 생성하면서 지정한 mongo / mongo를 입력하여 로그인한다.
 
사설 인증서라 인증서 부분에 주의 요함 표시가 나타나지만, 정상적으로 연결되는 것을 확인할 수 있다.