아....... 글 80% 작성 완료했는데 날아가서 새로 써야하네요.... 정말 속상합니다....
한 서버에서 여러 프로젝트를 돌려야 하는데 각 서브 도메인마다 ssl 인증 관리를 해주어야 해서 열심히 삽질을 한 결과 Nginx Proxy Manager(이하 npm, js 패키지 매니저 아님)를 사용하는게 가장 쉽고 편하다는 것을 깨닫게 되었다. 그리하여 docker compose를 사용하여 npm을 컨테이너로 실행하고 서브도메인별로 ssl 인증을 받는 과정을 정리해본다.
SSL Certificate:새로운SSL인증서를요청하거나기존인증서를사용하는옵션(Let'sEncrypt사용가능)Force SSL:HTTP요청을HTTPS로강제리다이렉트하도록설정HTTP/2 Support:HTTP/2프로토콜지원옵션HSTS Enabled:HSTS(HTTPStrictTransportSecurity)를활성화하여보안강화(HTTPS를통해서만접근되도록)HSTS Subdomains:하위서브도메인에대해HSTS적용여부를설정하는옵션(전체도메인에대한HTTPS보안을일관되게유지할수있도록)Use a DNS Challenge:DNS챌린지를사용하여SSL인증서를발급받을때사용하는옵션(웹서버에직접접근할수없는경우나,여러도메인또는와일드카드(예:*.example.com)인증서를발급받을때사용)EmailAddressforLet'sEncrypt:Let'sEncryptSSL인증서를발급받기위한이메일주소입력
7. 프로젝트 접속
저장 후 설정한 도메인으로 접속이 가능한지 확인한다.
Ex) https://project1.aleph.kr로 접속
만약 접속이 되지 않는다면 project가 정상적으로 실행되고 있는지, 프로젝트 포트 번호가 열려있는지 다시 한 번 확인한다.
후기
여기저기 접속하지 않고 docker compose up 명령어 하나만으로 착착착 설정이 완료되게끔 만들고 싶어 대략 3일정도 삽질을 열심히 했으나 두뇌 회전량의 한계로 인해 실패하고 주변 개발자분께(감사합니다 명한님) 조언을 받아 npm을 사용하게 되었다. 근데 막상 사용해보니 생각보다 너무 간단해서 여태 삽질한게 어이없을 정도였다. 명확한 근거와 시행착오가 없는 고집은 스스로를 고립시킨다는 것을 다시금 깨닫게 되었다.