질문/조언질답게시판
Extra Form
PHP PHP 8.0
CMS Rhymix 2.x

https://xetown.com/1537931

 

기진곰님 답변처럼 나만의 클라우드 플레어를 구축해보려고

앞단에 배치할 서버를 하나 더 구매해서 reverse proxy를 통해 기존 서버로 proxy_pass 를 통해 연결시켰습니다

기존 서버에 연결되어있던 도메인을 신규서버로 연결시켰구요. 물론 클라우드플레어의 구름 아이콘은 다 비활성화 시켜 DNS 역할만 하도록 했습니다.

 

 

그런데 여기서 인증서 문제가 발생하더라구요

 

1. 신규 서버에 동일한 도메인으로 인증서를 또 발급받고

proxy_pass https://기존서버ip:443 구문을 통해 연결시켰더니 작동은 하지만 파일이 꼬이는 등 오류가 발생합니다. 또한 인증서 중복 발급 때문에 아무래도 기존 서버의 443 연결은 언젠가 갱신이 안되는것도 걱정입니다.

 

2. 기존 서버의 ssl연결을 아얘 포기하고, 80포트로만 운영하게 변경 후

앞단의 서버에서 ssl을 설정하여

proxy_pass http://기존서버ip 

로 연결시켰더니 too many reditection 오류발생합니하며 연결이 안됩니다.

 

두개 다 깔끔한 방법은 아닌듯한데, 클라우드플레어는 기존 서버 ip만 연결시켜주면

기존 서버의 ssl 인증서 및 보안연결은 훼손하지 않으면서도 자연스럽게 연결이 되는것처럼 구현하고 싶습니다.

 

어떻게 하면 좋을지 조언 부탁드립니다 ㅠㅠ

서버를 그냥 주먹구구식으로 공부하다 보니 어려운 점이 많메요

  • profile

    1번이 정석입니다. 파일이 꼬인다고 하셨는데 구체적으로 어떤 증상인지 모르겠으나 SSL과는 별개의 문제로 보입니다.

     

    프록시 설정을 잘 하면 원본서버의 무료인증서도 갱신이 가능합니다만, proxy_ssl_verify off; 로 설정하거나 내부적으로만 신뢰하는 사설 인증서를 사용한다면 원본서버에 굳이 유효한 인증서를 유지할 필요는 없습니다. 결국 사용자가 보게 되는 것은 리버스 프록시의 인증서이지, 원본서버의 인증서가 아니니까요. 성능 유지를 위해서는 proxy_ssl_session_reuse on; 도 필수입니다. 여기까지 하면 클플의 Full SSL 방식과 거의 똑같이 됩니다.

     

    2번은 클플의 악명높은 Flexible SSL 방식과 동일한 것으로, 원본서버에서는 현재 https로 접속되어 있다는 사실을 인식하지 못하기 때문에 계속 https로 리다이렉트하려고 하는 문제가 있습니다.

  • profile profile

    안녕하세요! 답변해주셔서 감사합니다

    1. 인증서 발급시 validation 과정을 거치는데 아무래도 새로운 타 서버에 인증을 받는 과정에서 DNS의 achme_challengr TXT값을 변경해버려서 기존 인증서는 갱신이 안되는구나 하고 이해해버렸습니다 음 그게 아니었군요 ㅠㅠ

    2. 저는 동일서버에 접속 도메인에 따라 다른 사이트가 접속되도록 해서 멀티사에트를 운영중입니다!

    예) 서버에 A,B,C 사이트를 동시에 운영중

    본뮹의 1번 방법대로 시도를 하면 이상하게도, 사이트 내용은 정상적으로 보이는데 파비콘이 타 사이트의 파비콘으로 고정되더라구요(예: 도메인은 A사이트 도메인을 입력해서 접속 시 A사이트의 내용이 보이지만, 파비콘은 B사이트의 파비콘이 보임)

    이부분이 아무래도 이상해서 원본 서버의 아이피 주소:443 으로 직접 인증서 경고를 무시하고 접속해보았더니 무조건 B사이트가 표시되더라구요

    혹시 멀티 사이트 설정이 이상한걸까요?(저번에 설정해 주신 nginx의 sites, conf, snippet 모두 그대로 사용중입니다)

  • profile profile

    원본 서버의 아이피 주소:443으로 접속하지 말아야겠죠.
    프록시에서 원본 서버로 넘길 때 실제 도메인을 담은 Host 헤더를 추가해서

    도메인을 치고 접속한 것과 동일한 효과를 얻도록 해주세요.

  • profile profile
    감사합니다!!