728x90
서버를 운영하다 보면 이런 이야기를 자주 듣게 됩니다.
"HTTPS 설정하려면 Nginx에서 listen 443 ssl;
꼭 넣어야 해요."
그런데 궁금하지 않으셨나요?
도대체 왜 443 포트를 사용해야 하는 걸까요?
이번 글에서는 웹 동작 방식과 함께 그 이유를 예시 도메인인 upself.tistory.com
과 upself2.tistory.com
을 기준으로 설명드릴게요.
🌐 브라우저는 어떻게 동작할까?
예를 들어 사용자가 다음과 같이 접속한다고 가정해볼게요:
https://upself2.tistory.com
- 브라우저는 먼저 DNS를 통해 도메인을 IP 주소로 변환합니다.
- 그 다음 해당 IP의 443번 포트로 HTTPS 요청을 보냅니다.
- Nginx가
listen 443 ssl;
로 이 요청을 받아야 접속이 됩니다.
💡 참고로 HTTP 요청은 기본적으로 80번 포트를 사용합니다.
하지만 HTTPS는 보안 통신이기 때문에 443번 포트를 사용하도록 국제 표준으로 정해져 있어요.
📌 예시로 살펴보는 두 서버 설정
1️⃣ upself.tistory.com
(기존 서버 - FileMaker가 HTTPS 처리)
server {
listen 8080;
location / {
proxy_pass https://upself.tistory.com;
proxy_ssl_verify off;
}
}
- Nginx는 8080포트만 열어두고 있음
- 클라이언트는
https://upself.tistory.com
로 접속 → 이건 FileMaker가 직접 443 포트 열고 처리 - Nginx는 그저 중간에서 요청을 넘기는 역할만 함 (프록시)
2️⃣ upself2.tistory.com
(신규 서버 - Nginx가 HTTPS 처리)
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/;
}
}
- Nginx가 직접 443 포트를 열고 SSL 통신을 처리함
- 외부 HTTPS 요청 → Nginx가 받고 → 내부 HTTP 포트(16001)로 전달
- 이런 구조에서는 반드시
listen 443 ssl;
이 있어야 HTTPS가 동작합니다
🧪 비유로 이해해보기
포트는 웹 서버의 출입문과 같습니다.
- 브라우저는 "https니까 문번호 443으로 가야지!" 하고 찾아갑니다.
- 그런데 Nginx가 "나는 443번 문 안 열어뒀는데?" 하면 → ❌ 접속 안 됨
- 결론: HTTPS 요청을 받고 싶다면, 반드시 listen 443 ssl;로 문을 열어둬야 해요!
📦 포트 변경도 가능할까?
Nginx 설정에서 포트를 바꾸는 건 가능합니다. 예: listen 8443 ssl;
하지만 이 경우엔 사용자가 주소에 포트를 직접 입력해야 합니다.
https://upself2.tistory.com:8443
이런 방식은 사용자에게 익숙하지 않기 때문에, 실제 서비스에서는 무조건 443 포트를 사용하는 게 기본입니다.
✅ 요약 정리
- HTTPS는 브라우저가 자동으로 443 포트를 찾는 구조
- Nginx가 이 요청을 처리하려면 반드시
listen 443 ssl;
이 있어야 함 - FileMaker가 직접 SSL 처리하는 구조가 아니라면, SSL 인증서도 Nginx에 설정해야 함
반응형
'운영체제 및 플랫폼 > Linux(리눅스), 우분투(Ubuntu)' 카테고리의 다른 글
listen 443 없이도 HTTPS 접속이 되는 이유, 구조적으로 살펴보기 (0) | 2025.04.03 |
---|---|
Ubuntu 서버 UFW SSH 접속 문제 해결 (0) | 2025.03.18 |
Rocky Linux에서 Let's Encrypt로 SSL 인증서 발급 및 NGINX 리버스 프록시 설정 가이드 (0) | 2024.12.22 |
Rocky Linux에서 SVN(Subversion) 설정 가이드 (0) | 2024.12.21 |
[Elastic] ELK 스택 설치 및 설정 가이드 (0) | 2024.07.08 |