필자의 현재 회사에서 담당하고 있는 서비스들의 SSL 인증서를 갱신하며 포트포워딩 및 HTTP, HTTPS 연결에 겪었던 어려움 들을 정리하고 기록하려 합니다.
http://www.google.com:80
브라우저에서 위와 같은 주소를 접속하면 어떻게 될까요?
아마 접속이 되어 검색창이 나타나실텐데요.
주소창의 URL이 https://www.google.com 로 바뀌지 않았나요?
이유는 구글 내부에서 설정을 HTTP 로 통신해 들어오면 HTTPS 통신으로 리다이렉션 해서 접속하도록 했기 때문입니다.
HTTPS 통신을 통해 더 안전하고 암호화된 연결을 설정한 것이죠!
:80 포트는 HTTP 통신의 기본포트로 http://URL 에 포트명이 생략되어 있으면, 기본으로 :80포트로 접속하게 됩니다.
:443 포트는 HTTPS 통신의 기본포트로 https://URL 에 포트명이 생략되어 있으면, 기본으로 :443포트로 접속하게 됩니다.
http 프로토콜
http://www.google.com - http 프로토콜. 구글이 망하지만 않는다면 잘 접속된다.
http://www.google.com:80 - 80 포트를 명시했다. 잘 접속된다.
http://www.google.com:81 - 81 포트를 명시했다. 목적이 다른 포트이므로 접속이 안 된다.
https 프로토콜
https://www.google.com - https 프로토콜. 잘 접속된다.
https://www.google.com:443 - 443 포트를 명시했다. 잘 접속된다.
https://www.google.com:444 - 444 포트를 명시했다. 목적이 다른 포트이므로 접속이 안 된다.
그럼 :8080 포트와 :8443포트는 뭐야? 라고 생각하실텐데요.
위 2개의 포트는 톰캣에서 기본적으로 사용하는 HTTP/HTTPS 포트라고 생각하시면 될 것 같습니다.
IDE에서 톰캣을 사용해 빌드 후 http://localhost:8080 으로 접속하면 내가 만든 프로젝트를 웹서버에서 확인하실 수 있다는 건
여러분 모두 알고 계시겠죠? (.properties, .yml 에서 톰캣의 기본 포트를 변경하지 않았다면...)
만약, 위 톰캣 프로젝트를 사람들에게 서비스하기 위해 도메인을 만든 후 인터넷에 올려 구동시킨다고 생각해 봅시다.
http://myApp.com 이 주소로 접속이 될까요?
아마 접속이 되지 않을겁니다.
톰캣의 기본포트는 :8080 이므로 http://myApp.com:8080 로 포트를 명시해 줘야 필자가 만든 서비스를 확인할 수 있을겁니다.
HTTP 나 HTTPS 는 기본적으로 예약된 포트번호가 있습니다.
바로 위에서 말한 :80 와 :443 포트인데요.
“잘 알려진 포트들” “Well-known port”이라고도 하죠.
위와같은 포트는 URL뒤에 포트넘버가 없으면 기본적으로 찾아가는 포트이므로,
http://myApp.com 으로 접속한다는건 http://myApp.com:80 으로 접속한다는 말입니다.
자, 그럼 어떻게 설정을 잡아 줘야할까요?
이 물음의 답은 다른 포스트로 작성하도록 하겠습니다!
이번 포스트에서
HTTP 와 HTTPS 의 기본포트인 80포트와 443포트,
톰캣의 기본포트인 8080포트와 8443포트에 대한 차이점만 잘 알아가셨으면 좋겠습니다.