Traefik에서 Let's Encrypt 인증서 발급 문제 해결 및 대시보드 활성화
최근 Traefik 설정 중 Let's Encrypt 인증서 발급 문제를 겪었습니다. 이 문제로 인해 Traefik 대시보드가 정상적으로 표시되지 않았으나, 몇 가지 디버깅을 통해 문제를 해결할 수 있었습니다. 이 글에서는 제가 경험한 문제와 해결 과정을 공유합니다.
문제 상황
- Traefik 설정에서 Let's Encrypt 인증서를 사용하도록 설정했으나 대시보드에 접근할 수 없었습니다.
- 로그에서 다음과 같은 메시지를 반복적으로 확인했습니다:
- 인증서가 정상적으로 발급되지 않았고, Traefik 대시보드가 로드되지 않는 문제가 발생했습니다.
No ACME certificate generation required for domains
문제 원인
- Traefik이 인증서를 발급하는 과정에서 기존 인증서가 acme.json 파일에 남아있어 새 인증서를 생성하지 않았습니다.
해결 방법
1. acme.json 파일 확인 및 삭제
- Traefik 컨테이너 내부에 접속해 acme.json 파일이 존재하는지 확인합니다.
docker exec -it <traefik-container-id> sh
find / -name acme.json
- Traefik의 acme.json 파일 위치가 /etc/traefik/acme/acme.json임을 확인했습니다.
- 파일 내용이 손상되었거나 인증서가 만료된 경우, 다음 명령으로 해당 파일을 삭제합니다.
rm /etc/traefik/acme/acme.json
2. Traefik 서비스 강제 재시작
파일을 삭제한 후 Traefik 서비스를 강제 재시작해 새로운 인증서를 발급받도록 설정합니다.
docker service update --force traefik_traefik
3. Traefik 로그 확인 및 인증서 발급 성공 여부 확인
Traefik이 인증서를 제대로 발급받는지 로그를 통해 확인합니다.
docker service logs traefik_traefik --follow
발급이 성공하면 다음과 같은 메시지를 확인할 수 있습니다:
Certificates obtained successfully for domains
4. 대시보드 접근 확인
- 인증서가 발급된 후 Traefik 대시보드에 접근합니다:
기존 인증서 정보가 acme.json에 남아 있어 인증서가 새로 발급되지 않는 것이었습니다.
파일 삭제 후 강제 재시작으로 문제를 해결하였습니다.