docker 로 nginx static file 서빙하는 방법

조회수 885회

Docker를 이용해서 개인 프로젝트를 진행 중인데

ssl 인증서를 발급받아서 비밀번호를 설정하여 https로 프로젝트를 만드려고 합니다.

nginx에서 해당 설정을 추가하고 진행하였습니다.

ssl                  on;
ssl_certificate      /etc/pki/tls/certs/me/cert_chain.crt;
ssl_certificate_key  /etc/pki/tls/certs/me/my.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers   on;

그런데 docker가 시작 될 때마다, nginx에서 ssl passphrase를 요구하는 바람에 컨테이너가 생성되지 못한 채로 close 되버립니다.(permission denied 에러가 납니다.)

이를 해결하기 위해서 3가지 방법을 찾게 되었는데

  1. ssl인증서의 passphrase를 삭제하는 방법
  2. ssl_password_file 파일 설정을 이용하여, 컨테이너가 생성, 시작 될 때 pasphrase가 입력되어 있는 파일을 읽는 방법
  3. 도커 컨테이너 밖에서 nginx를 띄운다음 컨테이너는 따로 관리해서 컨테이너가 시작될 때, 비밀번호를 입력하는 상황을 막는 법

1, 2번 방법은 보안상 다소 취약할 거 같다는 생각이 들어서, 3번 방법을 통해 해결하고자 하였습니다. 그런데 도커 컨테이너 내부에 있는 스태틱 파일들을 컨테이너 밖에 있는 nginx가 서빙해주는 방법에 대해서 문제가 생겨서 3번 방법으로 진행하는 방법이 어렵다고 생각했습니다.

위의 3가지 방법이 전부 어려운 상황이라 혹시 다른 방법으로 문제를 해결한 분들이 계시다면 도움을 여쭙고 싶습니다.

감사합니다.

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)