• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

--dry-run 에 대해서 문의드립니다.

21.06.22 12:06 작성 조회수 1.06k

0

HTTPS 를 지원하는 워드프레스 + 나만의 웹서비스 구축하기 4분26초 에서
"이미 적합한 파일들이 들어가있는 상태이기 때문에 --dry-run 만 뺐다"라고 하셨는데요.
제가 궁금한것이 딱 그 부분이었는데요.

만약 10_HTTPS_NGINX_WP 폴더를 사용해서 처음으로 인증서를 받게 되는 경우에는
--dry-run을 한번 실행 해야 live 폴더같은(적합한파일들)이 생기는건가요?

제가
HTTPS 를 지원하는 Reverse Proxy 서버 구축 하기 강의의 7분53초 부분에서
docker-compose down 까지 하고, 명령어로 컨테이너 다 지우고 심지어 호스트PC에 폴더까지 완전히 다 지우고 강의 따라 했다가 https가 결코 안돼서 엄청 오래 고생했었거든요..

포기하려던 찰나에 다시 처음부터 강의를 완전히 똑같이 따라해서 해보니까, 
좀 전에 언급된 (적합한파일들) 까지 다 삭제했었기 때문이라는걸 뒤늦게 깨달았습니다.
그렇게 다 삭제하고 드라이런 빼고 하니까 그 말씀하신 (적합한파일들)이 생기지 않고 안되더라구요.

그래서..
만약에 10_HTTPS_NGINX_WP 폴더안의 내용으로 시작하는 부분에서
처음부터 https 인증까지 받는 경우라면 드라이런만 추가했다가, 성공메시지 본 후에 드라이런을 빼고 한번 더 실행하기만 하면 되는건지 궁금해서 문의 남깁니다.

혹시나 강의 내용과는 다르게 09_HTTPS_NGINX 폴더의 nginx.con.https 파일을 보면 주석이 들어가 있는데,
이것도 혹시 (적합한파일)들이 생기기 전에는 하면 안되는 그런 관련이 있는 부분인지 싶어서요.

/*
    server {
        listen 443 ssl;
        server_name fun-coding.xyz www.fun-coding.xyz;
        
        #ssl_certificate /etc/letsencrypt/live/fun-coding.xyz/fullchain.pem;
        #ssl_certificate_key /etc/letsencrypt/live/fun-coding.xyz/privkey.pem;
        #include /etc/letsencrypt/options-ssl-nginx.conf; # 보안 강화를 위한 옵션 추가
        #ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;   # 보안 강화를 위한 옵션 추가

        location / {
            proxy_pass         http://docker-web;       # docker-web 컨테이너로 포워딩
            proxy_redirect     off;                     # 서버 응답 헤더의 주소 변경 (불필요)
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
	    proxy_set_header   X-Forwarded-Proto $scheme;
        }
    }
*/

질문 안남기고 해보려고 했는데.. 이 부분은 제가 감히 막 모든 경우를 다 넣어보면서 실험해보기에는 횟수 초과될까봐 막연하고, 이미 한번 초과돼서 도메인을 다시 구매하기도 했고.. 큰그림이 잘 파악되지 않는 부분이고.. 그래서 질문드리게 됐습니다~!

답변 1

답변을 작성해보세요.

1

안녕하세요. ㅎㅎㅎㅎㅎ 질문 안남기고 ㅎㅎㅎ 라는 멘트에 빵 터졌습니다. 충분히 무슨 말씀인지 이해합니다.

우선은 솔직히 저 명령이요. 무슨 제대로된 가이드가 거의 없더라고요. 심지어 버전업이 되면서, 명령이 살짝씩 다른 느낌도 있습니다. 그래서 저도 한~~~~참 정리하는데 애를 먹었었습니다.

먼저, 제가 이 작업을 한 것을 상기해보면, 다음 파일을 다운받아야 하는데, 해당 파일들은 인증이 되어야 다운이 됩니다. 그래서 최초에는 인증이 안된 상태니까, 처음 도커를 띄울 때는, 다음 파일을 주석처리해서, nginx 를 띄우고, certbot 도커를 최초 실행해서, 인증을 하고, 해당 파일을 다운로드받는다고 보시면 좋습니다.

ssl_certificate /etc/letsencrypt/live/fun-coding.xyz/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/fun-coding.xyz/privkey.pem;

한번 다운받으면, 이제는 해당 주석을 풀어주고, 도커를 실행시키면서, 추가적인 작업과 테스트를 하면 되는 것이고요.

--dry-run 은 테스트만 하는 것이지, 위의 파일들을 실제로 다운받지는 않습니다. 다음 가이드에 --dry-run 으로 찾아보시면, 바로 설명을 보실 수 있으실 것입니다.

https://certbot.eff.org/docs/using.html?highlight=dry%20run

--- 다음과 같이 써있습니다.

Perform a test run of the client, obtaining test (invalid) certificates but not saving them to disk.

-------

그래서,

1. 우선 처음에는

- 위 --dry-run 옵션 없고 (1번),

- ssl_certificate 파일을 nginx 에서 import 안하도록 주석처리 (2번)

이렇게 두가지를 한 상태에서, 도커를 띄우고, 

2. 그 다음에 ssl_certificate 파일이 다운받아지면, 그 후부터는 가능한 --dry-run 을 넣어서, 테스트만 해보시고,

3. 최종적으로 한달에 한번 정도씩만 자동으로 인증되도록 모든 코드가 정상 동작하면, 최종 파일에는 --dry-run 을 빼시면 될 것 같습니다.

참고로 횟수 초과된다고 영원히 안되는 것은 아니고요. 그 다음날이면 다시 정상동작할 것이고요. 이 부분도 영상에 커멘트를 한 듯하고, 아마 전체 영상도 위 순서를 그대로 보여드리면서, 찍었던 것으로 이해하고 있습니다.

감사합니다.