VM instance 만들기
오라클 클라우드에서 평생 무료로 VPS 사용하기를 따라서 만들면 된다.
도메인 설정
컴퓨트 - 인스턴스에서 만든 인스턴스를 선택하고 공용 IP 주소를 확인해서 도메인 설정에 이용한다.
쉘 변경
$ sudo apt install zsh $ sudo chsh -s /bin/zsh ubuntu
docker 환경 구성
$ sudo apt install docker-compose $ sudo usermod -aG docker $USER
Let's Enctrypt 인증서 발급
방화벽 설정
컴퓨트 - 인스턴스에서 만든 인스턴스를 선택하고 기본 VNIC - 서브넷 - 보안 목록에서 사용 중인 보안 목록을 선택한 후, 수신 규칙 추가를 통해서 80 포트에 대한 수신 규칙을 추가한다.
인증서 발급
$ docker run -it --rm --name certbot -v '/etc/letsencrypt:/etc/letsencrypt' -p 80:80 certbot/certbot certonly --agree-tos --no-eff-email --standalone --preferred-challenges http -d 도메인
인증서 갱신
매번 컨테이너를 생성/삭제하기 귀찮아서 docker-compose를 사용했다.
아래와 같이 docker-compose.yml파일을 만든다.
version: "3"
services:
certbot:
container_name: certbot
image: certbot/certbot
ports:
- "80:80/tcp"
entrypoint: certbot renew
volumes:
- '/etc/letsencrypt:/etc/letsencrypt'
아래 명령으로 컨테이너를 실행한다.
$ docker-compose up
문제가 없다면 crontab에 등록해서 적당히 실행시켜 둔다
0 0 */2 * * docker-compose -f /home/ubuntu/docker/certbot/docker-compose.yml up