⚠ 이 글은 2년 이상 지난 이야기에요. 읽으실때 참고!
개발
서버 개발 일지
도커(docker)로 SSL 인증서 발급하는 과정.
34 views as of September 14, 2021.
인증서는 직접 인증서를 다루는 사이트가서 사서 적용할 수 있지만 임시 사이트나 영세 업장의 경우에는 Let's Encrypt 의 인증서 정도도 쓸만하다.
개별적으로 도커 명령어로 인증서를 발급할수도 있지만 경우에 따라서 라이브 서버에서 직접적으로 인증서를 발급해야하는경우도 있다.
나같은 경우에는 라이브서비스 중인 서버에서 필요에의해 임의의 타이밍에 도커를 내리고 인증서를 발급받거나, 재갱신 해야하는 작업이 필요했다.
그래서 자연스레 배치 작업쪽으로 도커를 사용하는법을 알아보고 적용하게 되었다.
우선 첫번째로 만들어야할 배치파일은
certbot-certonly.sh
이다.1 2 3 4 5 6 7 8 9 10 | #!/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 | cs |
위 명령어는 아래와 같은 역할을 진행한다.
1. docker가 돌아가는 폴더로 이동
2. docker 서비스를 중단
3. docker certbot 이미지를통해 SSL을 발급
4. 작업완료후 docker 서비스를 시작
간단한 명령이다. 마찬가지로 갱신역시 위와같은 느낌으로
certbot-renew.sh
파일을 생성한다.1 2 3 4 5 6 7 8 9 10 | #!/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 | cs |
이건 위에보다 간단하다.
certbot/certbot renew
명령으로 현재 인증서중 갱신가능한 인증서(1달이내 만료예정)를 재갱신한다.그럼 이제 제일중요 한거는 사용하는 방법이다.
certbot-certonly.sh 의 경우에는 내가 임의의 타이밍마다 직접 사용하는 경우가 대다수라 아래와 같은 명령어로 터미널에서 바로 실행하면된다. (물론 해당 배치파일이 있는 디렉토리에서요)
1 2 | $ sh certbot-certonly.sh | cs |
그러나 재갱신의 경우에는 자동으로 매달 초(1일) 새벽 3시에 자동 실행을 걸어놓고 싶으므로 터미널에서 crontab -e 명령을 통해 파일을 열고 가장 아래에 아래와 같은 구문을 적으면 된다.
1 2 3 | # 매월 1일 새벽 3시에 실행, 실행결과를 /home/ubuntu/cert.log 에 기록 0 3 1 * * /home/ubuntu/certbot-renew.sh >> /home/ubuntu/cert.log 2>&1 | cs |
이후에 실행이 되고나면
cert.log
파일에 위에 실행구문에 적어놓은 echo
구문이 모두 기록으로 남게 되어 확인을 할 수 있다.인증서 발급: https://lynlab.co.kr/blog/72
인증서 발급 갱신: https://darrengwon.tistory.com/547
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