운영체제 및 플랫폼/Linux(리눅스), 우분투(Ubuntu)

listen 443 없이도 HTTPS 접속이 되는 이유, 구조적으로 살펴보기

upself 2025. 4. 3. 22:56
728x90

최근에 새 서버를 세팅하면서 흥미로운 차이를 발견했어요.
Nginx 설정에 listen 443 ssl;이 없는데도 브라우저에서 https 접속이 잘 되는 기존 서버!

이번 글에서는 FileMaker Server 설치 방식SSL 인증서 적용 방식에 따라
Nginx에서 SSL을 처리하지 않아도 HTTPS가 되는 원리를 설명해볼게요.


 기존 서버 vs 신규 서버 비교

항목 기존 서버
(upself.tistory.com)
신규 서버
(upself2.tistory.com)
 인증서 발급 방식 Admin Console에서 Import Use the FileMaker-generated request
 Nginx SSL 처리 listen 8080;만 사용 (SSL 미처리) listen 443 ssl;로 SSL 직접 처리
 proxy_pass 대상 https://upself.tistory.com http://localhost:16001/
 인증서 검증 proxy_ssl_verify off; 클라이언트 직접 인증서 사용
 외부 접속 방식 FMS가 직접 HTTPS 제공 Nginx가 HTTPS 요청 받고 내부 전달

 왜 listen 443 ssl; 없이도 HTTPS가 될까?

기존 서버에서는 FileMaker Server 설치 시 "Import certificate" 방식을 사용했어요.
이 방식은 FMS(FileMaker Server)가 자체적으로 443 포트를 열고, HTTPS 처리를 직접 수행합니다.

즉, 사용자가 접속하는
https://upself.tistory.comNginx를 거치지 않고, FMS가 직접 응답하는 구조예요.

# 기존 서버 Nginx 설정 요약
server {
    listen 8080;
    location / {
        proxy_pass https://upself.tistory.com;
        proxy_ssl_verify off;
    }
}

 그래서 Nginx에 listen 443 ssl; 설정이 없어도
브라우저에서 HTTPS 접속이 정상적으로 작동했던 거예요!


 반면, 신규 서버는 왜 Nginx가 SSL을 처리해야 할까?

신규 서버는 "Use the FileMaker-generated certificate request" 옵션을 선택했어요.
이 방식은 FileMaker가 자체 SSL 처리를 하지 않기 때문에, 내부 포트 (16001 등)로만 동작합니다.

 따라서 외부에서 HTTPS 접속을 하려면, Nginx가 SSL을 처리하고
내부 포트로 proxy_pass 해주는 구성이 필요합니다.

# 신규 서버 Nginx 설정 요약
server {
    listen 443 ssl;
    server_name upself2.tistory.com;

    ssl_certificate     /etc/letsencrypt/live/upself2.tistory.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/upself2.tistory.com/privkey.pem;

    location / {
        proxy_pass http://localhost:16001/;
    }
}

 한 줄 정리

FileMaker Server 설치 시 "Import certificate"를 선택하면
FMS가 직접 SSL 처리 → Nginx에서 SSL 설정 없이도 HTTPS 접속 가능!

반대로 "Use the FileMaker-generated"를 선택하면
FMS는 내부 포트만 열림 → Nginx에서 SSL 처리 필수!

 마무리 팁

  • FileMaker 설치 시 SSL 구성 방식을 신중하게 선택하세요.
  • 운영 방식에 따라 FMS가 직접 SSL 처리할지, Nginx가 할지 달라집니다.
  • 이 차이는 향후 서버 구조와 보안 설계에 큰 영향을 줄 수 있어요!
반응형