Let's Encrypt 를 이용해 Dokku 앱 HTTPS 연결 지원하기

2016-03-25

linux note update tip docker dokku letsencrypt

웹사이트들을 이용하다 보면, 보안을 위해 HTTPS 연결 지원을 하는 경우를 어렵지 않게 볼 수 있습니다. 보통 HTTPS 연결을 지원하려면, TLS/SSL 인증서를 발급받아야 합니다. 그런대, TLS/SSL 인증서를 발급할 때 일정 금액을 지불해야 하다보니. 개인 사이트에 사용하는 경우에는 부담이 되는 경우가 있을 수가 있습니다.

Let’s Encrypt 를 이용하면 이러한 부담 없이 TLS/SSL 인증서를 무료로 발급할 수 있습니다. Let’s Encrypt 는 TLS/SSL 인증 서비스를 무료로 제공하는 서비스입니다. 현제 퍼블릭 베타 단계를 거치고 있는 중입니다. ISRG(Internet Security Research Group) 에서 서비스를 제공합니다.

Dokku 에서는 플러그인이 있어 이를 이용해 쉽게 인증서를 발급하고, 배포된 앱에 대해 HTTPS 연결을 지원할 수 있습니다. 지금부터 어떻게 하는지 알아봅시다.

플러그인 설치

Let’s Encrypt 플러그인을 설치하려면, Dokku 가 설치된 시스템에서 아래 명령을 실행합니다.

sudo dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git

이미 설치되어 있으나 이전 버전인 경우, 업그레이드 해 줍시다.

sudo dokku plugin:update letsencrypt

사용법

사용법은 간단합니다. 먼저 인증서를 발급할 앱에 인증서 발급에 사용할 이메일 주소를 설정해 줍니다.

dokku config:set --no-restart <대상-앱-이름> DOKKU_LETSENCRYPT_EMAIL=[email protected]

그리고 인증서를 발급하세요.

dokku letsencrypt <대상-앱-이름>

필요한 경우 인증서를 갱신하거나 취소합니다.

dokku letsencrypt <대상-앱-이름>             # 대상 앱에 대해 인증서를 발급하거나 갱신합니다.
dokku letsencrypt:auto-renew                # 인증서 갱신이 필요한 모든 앱의 인증서를 갱신합니다.
dokku letsencrypt:auto-renew <대상-앱-이름>  # 대상 앱에 대해 인증서를 갱신합니다.
dokku letsencrypt:ls                        # Let's Enccrypt 인증서를 사용중인 앱의 목록을 봅니다.
dokku letsencrypt:revoke <대상-앱-이름>      # 대상 앱에 대한 인증서를 취소합니다.

인증서가 발급된 앱에 대해서는 Dokku 에 내장된 certs:* 명령을 사용하실 수 있습니다.

주의사항

  • 앱 URL 에 / 와 같은 올바르지 않은 문자가 포함되어 있으면 안됩니다. 인증서 발급 시 발급 오류의 원인이 됩니다. 필요한 경우, /home/dokku/VHOST 그리고, /home/dokku/<앱-이름>/VHOST 에서 URL 을 수정하여, 올바르지 않은 문자를 지워 줍시다.
  • Dokku 를 통해 배포중인 앱의 수가 매우 많은 경우, 각 앱의 서브도메인마다 인증서를 발급하지 않도록 주의합니다. 동일한 최상위 도메인에 대해 발급 가능한 서로 다른 인증서 수가 제한되어 있습니다.

참고문헌 및 참고 웹페이지

Shoes

Dokku 설치 및 설정하기

2016-03-25

개인적으로 AWS EC2 인스턴스에 Dokku 라는 것을 설치해서 사용하는 중인데요. Dokku 는 Heroku 와 같은 일종의 PaaS(Platform as a Service) …

Ubuntu Server 에 Docker 설치하고 설정하기.

2015-11-16

필자는 AWS EC2 VM에 도커(Docker)를 한번 설치하여, 이것저것 개발한 웹 앱과 서버 등을 돌려보기로 했습니다. 그러면서 포스팅으로도 정리하려 합니다. 먼저, 설치/설정을 대략 했는데, 이 포스트로 그 과정을 정리합니다. Docker?? 도커(Docker)는, 리눅스 컨테이너 기술을 기반으로, 앱을 배포할 때 필요한 모든 것을 하나의 컨테이너에 담아 OS에 상관없이 앱을 패키징하여 배포할 수 있도록 해 주는 프로그램 입니다.

아치리눅스에서 SSD TRIM 사용하기

2015-12-22

하드디스크에서 파일을 지우면, 디스크에서 완전히 파일을 지우지 않고 위치를 알려주는 연결만 끊었습니다. 그리고 다른 새 파일을 저장할 때, 덮어쓰기 했습니다. 완전히 지우고 새로 저장 하기엔 시간이 오래 걸리는 것이 그 이유입니다. 실제로 Windows 나 리눅스에서 파일을 지우거나 디스크를 “빠른 포맷” 으로 포맷하면, 파일이 완전히 지워지지 않고, 연결만 끊김니다. 나중에 덮어씌우면 되니까요.