인프라/시스템 보안
[ SSL ] Certbot
김붕어87
2023. 4. 25. 12:13
반응형
개요
Let`s Encrypt 비영리 기관을 통해 무료로 SSL 인증서를 발급 받을 수 있습니다.
인증서는 3가지 형태로 발급 가능합니다.
루트 도메인 인증서
서브 도메인 인증서
* 와일드카드 도메인 인증서
인증서 발급은 Certbot을 사용해서 도메인 인증 후 발급 됩니다.
링크
SSL 인증서 발급 방법 4가지
- webroot
- 사이트 디렉토리 내에 인증서 유효성을 확인할 수 있는 파일을 업로드하여 인증서를 발급
- 실제 작동하고 있는 웹서버의 특정 디렉토리의 특정 파일 쓰기 작업을 통해서 인증
- 이 방식의 장점은 nginx를 중단시킬 필요가 없음
- 이 방법의 단점은 인증 명령에 하나의 도메인 인증서만 발급 가능
- 웹서버
- 운영중인 웹서버에서 SSL 인증을 진행하고 SSL 인증을 발급 및 자동 셋팅 해준다.
- 발급이나 갱신을 위해 웹서버를 중단시킬 필요가 없음
- 인증서 갱신 시 상황에 맞게 셋팅을 자동으로 업데이트
- Standalone
- 사이트 작동을 멈추고 이 사이트의 네크워킹을 이용해 사이트 유효성을 확인해 Let’s Encrypt SSL 인증서를 발급하는 방식
- 80포트로 가상 Standalone 웹서버를 띄워서 인증서를 발급
- 이 방식은 동시에 여러 도메인을 발급 받을 수 있음
- 그렇지만 인증서 발급 전에 Nginx를 중단하고 발급 완료 후 다시 Nginx를 시작해야 함
- DNS
- 도메인을 쿼리해 확인되는 TXT 레코드로 사이트 유효성을 확인하는 방법
- 와일드 카드 방식으로 인증서를 발급 가능
- 이 방법은 당연하게도 서버 관리자가 도메인 DNS를 관리/수정할 수 있어야 하며 . 인증서 갱신 시마다 DNS에서 TXT값을 변경해야 하므로 외부에서 TXT 레코드를 입력할 수 있도록 DNS가 API를 제공하는 경우만 갱신 과정을 자동으로 처리(클라우두플레어 API가 대표적인 사례)
Certbot 인증서 발급
1. Certbot docker으로 실행
- certbot을 설치해서 실행하는 방법과 certbot docker를 실행하는 방법 2가지가 있습니다.
- 와일드 카드로 생성하기 위해서는 도메인 2개를 동시에 설정해줘야합니다.
- xxx.com
- *.xxx.com
docker run -it --rm --name certbot \
-v 'etc:/etc/letsencrypt' \
-v 'var:/var/lib/letsencrypt' \
certbot/certbot certonly \
-d 'xxx.com' \
-d '*.xxx.com' \
--manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory
2. 도메인에 TXT 레코드 설정
- AWS Route53 및 도메인 구입한 곳에서 txt 레코드 등록하기
- xxx.com
- *.xxx.com
3. 도메인에 TXT 레코드 설정 확인
- local에서 레코드 확인
dig _acme-challenge.xxx.com txt +short
- 퍼블릭에서 레코드 확인
4. private, cert key 확인
- 맥북에서는 docker volume에 접근이 안되어서 VM 띄어서 접근해야합니다.
docker start dockervm_instance -i || docker run --name=dockervm_instance -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh
- MAC docker 어플리케이션에서 공유 volume 으로 접근하면됩니다.
5. Nginx에서 도메인 설정
... 중간 생략 ...
ssl_certificate /etc/letsencrypt/live/test.dev.blockgenie.app/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/test.dev.blockgenie.app/privkey.pem; # managed by Certbot
... 중간 생략 ...
반응형