Docker로 SSL 인증서 재발급 받기

Jung Hong·2022년 12월 7일
0

3개월 전에 AWS EC2에 Let's Encrypt를 통해 SSL 인증을 적용해서 배포했던 프로젝트의 SSL 인증서가 90일이 지나 만료되었다. 인증서를 갱신해주기 위해서 Docker Certbot 이미지를 재실행 시켜서 인증서를 재발급 받았다. 재발급 과정에서 발생한 문제들은...

  • Certbot 이미지를 그대로 실행시켜 SSL 인증서 재발급 명령어를 실행하면 이러한 에러가 발생하는데,

내가 생각하는 원인은, nginx 로 이미 80 포트가 열려있어서, 인증서 갱신이 안되는것 같았다.

80포트가 이미 할당이 되어서, 웹서버 실행이 안된다는 에러를 볼 수 있었다...

  • 80포트로 실행중인 Nginx 프로세스를 멈추고

  • 인증서 갱신 시도하면, 정상적으로 인증서가 재발급 되는것을 확인 할 수 있다(+ NextJS, Django Server 컨테이너가 실행중이고, Nginx 컨테이너는 Exited 되어 있다)

  • 인증서 발급을 받은 뒤에는, Nginx 컨테이너를 다시 reload 해주어야지 80포트로 생성된 IP가 도메인에 물려서 해당 도메인 주소로 접속할 수 있다.

  • 이 명령어를 통해서 nginx 를 실행해주면, 'signal process started...' 응답이 나오고, 페이지로 접근해보면, 배포가 정상적으로 완료됨을 확인할 수있다

  • 현재 떠있는 프로세스를 확인해보면, front(NextJS, 3000포트), back(Django, 8000포트), Nginx(80포트) 프로세스가 실행중임을 확인할 수 있다. certbot 프로세스는 인증서 발급시에만 실행되기 때문에, 프로세스가 계속 떠있을 필요는 없다 (-> certbot이 정의된 인증서 발급용 docker-compose 와 코드 수정 등 배포를 위한 docker-compose 파일을 두개 생성해서 각각 관리하였다.)

프론트, 서버 프로젝트를 AWS EC2에 담아서, 도커를 통해서 이미지화 하고, 해당 이미지를 실행시켜서 Nginx를 통해 접근할 수 있게 하는 작업을 수행하였다.
--> 이번 블로그에는 메모에 가깝게 정리했지만, 추후에 도커를 통해 SSL을 적용한 페이지와 서버를 배포하는 전체 과정을 구체적으로 블로깅 해보겠다.

0개의 댓글