홈페이지 https 인증을 위한 SSL 인증서를 Let’s Encrypt를 사용하고 있습니다. 그런데 이 인증서가 90일마다 만료되므로 만료 30일 전부터 인증서 갱신을 해야 합니다.
그런데 기본적으로 standalone 방식으로 인증서를 갱신하는데 문제는 이 갱신 작업도 80번 포트를 사용해 인증하므로 인증하는 동안 잠시 홈페이지 서버를 작동 중지해야 합니다. 서버가 잠깐 멈추는 것보다도 매번 이렇게 하기가 번거로워서 AI에 해결법을 물어봤더니 webroot 방식으로 인증서를 갱신하는 방법을 알려줘서 내용을 적어봅니다. AI 가 참 편하네요.
먼저 인증서 갱신 방법이 담겨있는 파일을 확인합니다.
[pi@localhost ~]# sudo vim /etc/letsencrypt/renewal/mightyfriend.net.conf
홈페이지 주소에 따라 파일이름은 다를 겁니다. 파일 내용 중 아래쪽 내용을 확인합니다.
[renewalparams] account = (고유한 값) authenticator = standalone server = https://acme-v02.api.letsencrypt.org/directory
이 부분을 다음과 같이 변경합니다.
[renewalparams] account = (변경하지 않고 그대로 유지) authenticator = webroot webroot_path = (홈페이지 파일이 있는 위치), server = https://acme-v02.api.letsencrypt.org/directory [[webroot_map]] mightyfriend.net = (홈페이지 파일이 있는 위치) www.mightyfriend.net = (홈페이지 파일이 있는 위치)
홈페이지 파일이 있는 위치는 보통 /var/www/html 입니다. 각자 홈페이지 상황에 맞게 변경해 줍니다.
이제 갱신 시뮬레이션을 해봅니다.
[pi@localhost ~]# sudo certbot renew --dry-run
성공적으로 갱신되었다는 메세지가 출력되면 앞으로 인증서 유효기간이 30일 미만이 되면 자동으로 갱신작업이 진행됩니다.
Standalone 과 Webroot 인증 방식을 요약하였습니다.
| 구분 | Standalone | Webroot |
| 개념 | Certbot이 스스로 임시 웹서버가 되어 직접 인증 처리 | 이미 돌아가고 있는 웹서버에 인증용 숟가락만 얹기 |
| 80번 포트 점유 | 자기가 직접 독점하려 함 | 기존 웹서버가 쓰고 있는 80번 포트를 방해 없이 같이 씀 |
| 웹서버 상태 | 웹서버가 꺼져 있거나 멈취 있어야 함 | 웹서버가 항상 정상 작동 중이어야 함 |
| 작동 환경 | 웹서버의 종류나 설정 파일 경로를 몰라도 됨 | 웹 디렉토리 경로(예: /var/www/html)를 정확히 알아야 함 |
