배포, 운영/Infra

[Infra] HTTPS 재갱신 및 자동 갱신 적용 방법

Ash_jisu 2024. 9. 29. 18:52

Cerbot을 통해 적용했던 HTTPS 인증서의 만료

HTTPS는 웹 사이트와 사용자 간의 데이터 통신을 암호화하여 보호해 주는 보안 프로토콜이다. Cerbot은 이러한 HTTPS 인증서를 무료로 발급해주는 Let's Encrypt와 통함된 도구로 SSL/TLS 인증서를 쉽게 관리하고 갱신할 수 있도록 도와준다

Cerbot이란?

Let's Encrypt에서 제공하는 무료 SSL 인증서를 자동 설치 및 갱신하는 오픈 소프트웨어이다. 유효기간은 90일이다. 따라서 매번 수동 갱신을 할 것이 아니라면 자동 갱신을 설정해주는게 일반적이다.

 

기존 프로젝트의 Cerbot 유효기간 만료

처음 적용할 당시 자동 갱신을 적용하지 않아 이렇게 90일이 지난 exam-lab.store 은 https가 적용이 되지 않은 모습이다.

 


수동 및 자동 갱신 적용 방법

cerbot 수동 갱신 진행

sudo certbot renew --dry-run   #수동 갱신 진행
sudo systemctl reload nginx   #Nginx리로딩

수동 갱신 적용
도메인에 https 문제없이 적용 완료

이제 앞으로 매번 갱신할 필요없게 자동 갱신을 진행해보자

 

자동 갱신 작업 추가

Crontab 시작 및 활성화(대부분의 Linux 배포판에는 기본적으로 설치)

sudo systemctl start crond  //시작
sudo systemctl enable crond //활성화

자동 갱신 작업 추가

sudo crontab -e //crontab 열기

0 0 */30 * * certbot renew --quiet --deploy-hook "systemctl reload nginx" 

sudo crontab -l //작업 확인
  • 이 서버의 경우 nginx를 통해 라우팅 관리를 하고있어 갱신 -> nginx 리로딩이 필수적이다.
    이 내용을 토대로 두번째 코드 작성했다
  • 초 분 달 순서이다. 따라서 시간별로 갱신하고 싶다면 0 */12와 같이 작성하면 된다.(매 12시간마다라는 뜻)
  • 참고로 Crontab은 31일 까지의 날짜 범위 처리 가능하다.