본문 바로가기
IT 모바일 Gear Up

리눅스/Linux Mattermost https(SSL)로 운영하기 How to setup mattermost via https(SSL) on ubuntu

by sk2nd 2024. 8. 3.

목차

    리눅스/Linux Mattermost https(SSL)로 운영하기 How to setup mattermost via https(SSL) on ubuntu

    최근 들어 기업 내에서 협업 도구의 중요성이 더욱 부각되고 있습니다. 그중에서도 Slack의 대안으로 많이 사용되는 오픈 소스 협업 도구인 Mattermost는 보안과 커스터마이징 측면에서 많은 장점을 제공합니다. 이번 글에서는 Ubuntu Linux에서 Mattermost를 HTTPS(SSL)로 안전하게 운영하는 방법을 다뤄보겠습니다. 이 글은 이전에 작성한 Mattermost 설치 가이드 이후의 과정으로, HTTPS를 적용해 Mattermost를 더욱 안전하게 운영할 수 있도록 안내합니다.

    1. 도메인 구매

    Mattermost를 HTTPS로 운영하기 위해서는 먼저 도메인이 필요합니다. 도메인은 웹사이트의 주소로, SSL 인증서를 적용하기 위해 반드시 필요합니다. 필자는 Hosting.kr에서 도메인을 구매했으며, 가격이 비교적 저렴한 편입니다. 도메인을 구매했다면 다음 단계로 넘어갑니다.

    2. Certbot 설치

    무료 SSL 인증서인 Let's Encrypt를 이용해 Mattermost에 HTTPS를 적용할 계획입니다. 이를 위해 Certbot이라는 도구를 설치해야 합니다. Certbot은 Let's Encrypt 인증서를 자동으로 설치하고 갱신해 주는 매우 유용한 도구입니다. 아래 명령어를 통해 Certbot을 설치합니다:

    sudo apt update
    sudo apt install certbot python3-certbot-nginx

    NGINX는 설치하지 않아도 되지만, 궁극적으로 NGINX 프록시 서버 위에서 Mattermost를 운영할 계획이라면 설치를 권장합니다.

    3. Mattermost 설정 변경

    HTTP로 Mattermost를 설치하고 나서 HTTPS로 변환하려면 Mattermost의 시스템 콘솔에서 몇 가지 설정을 변경해야 합니다. 다음 단계는 웹 브라우저를 통해 Mattermost에 접속한 후 시스템 콘솔(System Console)로 이동하여 진행합니다.

    4. Web Server 설정 변경

    System Console에서 ENVIRONMENT > Web Server 항목의 설정을 다음과 같이 변경합니다:

    1. Site URLhttps://구매한도메인:443으로 변경합니다. 여기서 '구매한도메인'은 앞서 구매한 도메인을 입력합니다.
    2. Listen Address:443으로 변경합니다. 포트 443은 HTTPS 트래픽을 처리하는 기본 포트입니다.
    3. Fordward port 80 to 443 옵션을 true로 설정합니다. 이는 HTTP로 들어오는 트래픽을 자동으로 HTTPS로 리다이렉트해줍니다.
    4. Connection SecurityTLS로 설정합니다. TLS는 HTTPS의 핵심 기술로, 데이터를 암호화하여 안전하게 전송할 수 있게 해줍니다.
    5. Use Let's Encrypttrue로 변경합니다. 이 옵션은 Let's Encrypt 인증서를 자동으로 발급하고 설치해 줍니다.

    이 모든 설정을 완료한 후 페이지 하단에 있는 Save 버튼을 클릭하여 설정을 저장합니다.

    5. 포트 설정 변경

    Mattermost가 1000번 이하의 포트에서 실행되도록 설정을 변경해야 합니다. 이를 위해 아래 명령어를 사용합니다:

    sudo setcap cap_net_bind_service=+ep /opt/mattermost/bin/mattermost

    이 명령어는 Mattermost가 루트 권한 없이도 443 포트와 같은 낮은 번호의 포트에서 실행될 수 있도록 합니다. 이 설정을 하지 않으면 포트 충돌로 인해 서버가 정상적으로 작동하지 않을 수 있습니다.

    6. Mattermost 재시작

    설정을 마친 후 Mattermost 서버를 재시작합니다. 아래 명령어를 사용하여 Mattermost 서비스를 재시작할 수 있습니다:

    sudo systemctl restart mattermost

    서버가 재시작되면 Mattermost가 HTTPS 모드로 정상적으로 동작하는지 확인할 수 있습니다.

    7. NGINX와의 충돌 문제

    Mattermost를 직접 HTTPS로 운영하는 경우 NGINX와의 충돌 문제가 발생할 수 있습니다. NGINX가 설치되어 있을 경우, Mattermost와 포트 충돌이 발생할 수 있습니다. 이 문제를 피하려면 NGINX를 비활성화하는 것이 좋습니다. 아래 명령어로 NGINX를 중지하고 자동 실행을 비활성화할 수 있습니다:

    sudo systemctl stop nginx
    sudo systemctl disable nginx

    NGINX를 비활성화한 상태에서는 Mattermost만 운영할 수 있습니다. 그러나 다른 웹사이트와 함께 운영해야 할 경우, NGINX를 사용하여 프록시 설정을 추가로 구성하는 것이 필요합니다. 이 과정은 추가적인 설정이 필요하며, NGINX를 이용한 HTTPS 설정은 이후에 별도의 글에서 다룰 예정입니다.

    결론

    이 글에서는 Ubuntu에서 Mattermost를 HTTPS(SSL)로 안전하게 운영하는 방법을 알아보았습니다. Mattermost는 기업 내에서 중요한 협업 도구로 사용될 수 있으며, 보안 강화를 위해 HTTPS 적용은 필수적입니다. 위 과정을 통해 쉽게 설정할 수 있으니, Mattermost의 보안을 강화하고 싶다면 꼭 적용해보시길 권장드립니다.

    반응형

    댓글