⚠ 이 글은 2년 이상 지난 이야기에요. 읽으실때 참고!
개발
서버 개발 일지
도커(docker)로 SSL 인증서 발급하는 과정.
92 views as of September 14, 2021.
인증서는 직접 인증서를 다루는 사이트가서 사서 적용할 수 있지만 임시 사이트나 영세 업장의 경우에는 Let's Encrypt 의 인증서 정도도 쓸만하다.
개별적으로 도커 명령어로 인증서를 발급할수도 있지만 경우에 따라서 라이브 서버에서 직접적으로 인증서를 발급해야하는경우도 있다.
나같은 경우에는 라이브서비스 중인 서버에서 필요에의해 임의의 타이밍에 도커를 내리고 인증서를 발급받거나, 재갱신 해야하는 작업이 필요했다.
그래서 자연스레 배치 작업쪽으로 도커를 사용하는법을 알아보고 적용하게 되었다.
우선 첫번째로 만들어야할 배치파일은
certbot-certonly.sh
이다.#!/bin/bash
echo
echo [$(date '+%Y-%m-%d %H:%M:%S') Run certbot-certonly.sh] ====================================
cd ~/docker
docker-compose down
docker run -it --rm --name certbot -p 80:80 -v '/etc/letsencrypt:/etc/letsencrypt' -v '/var/lib/letsencrypt:/var/lib/letsencrypt' \
certbot/certbot certonly --standalone --preferred-challenges http --email your@email.com -d www.domain.com -d domain.com
docker-compose up -d
echo [done] ========================================================================
echo
Copy
위 명령어는 아래와 같은 역할을 진행한다.
1. docker가 돌아가는 폴더로 이동
2. docker 서비스를 중단
3. docker certbot 이미지를통해 SSL을 발급
4. 작업완료후 docker 서비스를 시작
간단한 명령이다. 마찬가지로 갱신역시 위와같은 느낌으로
certbot-renew.sh
파일을 생성한다.#!/bin/bash
echo
echo [$(date '+%Y-%m-%d %H:%M:%S') Run certbot-renew.sh] ====================================
cd ~/docker
docker-compose down
docker run --rm --name certbot -p 80:80 -p 443:443 -v '/etc/letsencrypt:/etc/letsencrypt' -v '/var/lib/letsencrypt:/var/lib/letsencrypt' \
certbot/certbot renew
docker-compose up -d
echo [done] ========================================================================
echo
Copy
이건 위에보다 간단하다.
certbot/certbot renew
명령으로 현재 인증서중 갱신가능한 인증서(1달이내 만료예정)를 재갱신한다.그럼 이제 제일중요 한거는 사용하는 방법이다.
certbot-certonly.sh 의 경우에는 내가 임의의 타이밍마다 직접 사용하는 경우가 대다수라 아래와 같은 명령어로 터미널에서 바로 실행하면된다. (물론 해당 배치파일이 있는 디렉토리에서요)
$ sh certbot-certonly.s
Copy
그러나 재갱신의 경우에는 자동으로 매달 초(1일) 새벽 3시에 자동 실행을 걸어놓고 싶으므로 터미널에서 crontab -e 명령을 통해 파일을 열고 가장 아래에 아래와 같은 구문을 적으면 된다.
# 매월 1일 새벽 3시에 실행, 실행결과를 /home/ubuntu/cert.log 에 기록
0 3 1 * * /home/ubuntu/certbot-renew.sh >> /home/ubuntu/cert.log 2>&1
Copy
이후에 실행이 되고나면
cert.log
파일에 위에 실행구문에 적어놓은 echo
구문이 모두 기록으로 남게 되어 확인을 할 수 있다.인증서 발급
Docker로 간단하게 Let's Encrypt 와일드카드 인증서 발급받기 | LYnLab
이 포스트에서는 Docker를 이용하여 의존성 없이 쉽고 빠르게 인증서를 발급 받는 방법을 설명합니다.
https://lynlab.co.kr/blog/72
인증서 발급 갱신
certbot를 활용한 https 인증서 발급 및 cron 설정
certbot.eff.org/docs/ Welcome to the Certbot documentation! — Certbot 1.11.0.dev0 documentation certbot.eff.org AWS ACM 사용해도 되긴 하는데 솔직히 AWS console 세팅이 더 복잡하고 손이 많이 갑니다. greenlock-express은 불안정하고, 무엇보다 프로젝트가 관리가 안되고 있습니다. 다음과 같이 구성할 예정입니다. 1. certbot 설치 실무적인 cerbot 설치 과정은 아래 사이트에서 편하게 확인할 수 있다. certbot.eff.org/lets-encrypt/snap-nginx Certbot - Snap Nginx a project of the Electronic Frontier Found..
https://darrengwon.tistory.com/547
인증서 갱신 크론탭
Let's Encrypt SSL 인증서 자동 갱신 설정 방법 · Tonic
https://devlog.jwgo.kr/2019/04/16/how-to-lets-encrypt-ssl-renew/
#개발 #서버 #도커 #docker #SSL #인증서 #certbot
0
개의 댓글
Collection. 서버 개발 일지
01.
413 Request Entity Too Large 문제에 대해
2019
02.
ssh 터미널 접근시 발생하는 문제에 대해
2019
03.
Nginx 404 에러 페이지 리다이렉트
2019
04.
Nginx SSL 적용
2019
05.
파이썬으로 웹사이트 상태 체크하기
2019
06.
Nginx 서브 디렉토리 역방향 프록시 설정
2019
07.
PHP7.2 로 판올림 이후 PhpMyAdmin 이슈
2019
08.
Nginx 환경에서 웹폰트 확장자 CORS 이슈
2019
09.
Nginx 체인 인증서 적용
2019
10.
Nginx 특정 IP 차단 하기
2019
11.
proc_open(): fork failed errors ~ 포크 실패 에러
2020
12.
Ubuntu에서 환경변수 PATH 추가 적용하는 방법
2020
13.
Nginx 캐시 설정법
2020
14.
도커(docker)로 SSL 인증서 발급하는 과정.
2021
15.
Ubuntu 스왑 메모리(Swap Memory) 설정
2023
16.
Ubuntu 디스크 용량 확인하는 몇가지 명령어
2023
17.
도커(docker) 인증서 발급 조회 삭제 명령어
2024
18.
Ubuntu 로그 100개 떼어보기
2024
19.
SSL 인증서 비밀번호 제거 방법
2024
20.
Nginx 서버 로그 기록 설정 및 커스터마이징
2024