ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AWS] HTTP / HTTPS / SSL(TLS) 이 뭐고 적용 방법은 ?
    IT/AWS 2018. 12. 12. 17:18


    HTTP



    - HyperText Transfer Protocol 또는 HyperTexT Protocol의 약자. 하이퍼텍스트를 빠르게 교환하기 위한 프로토콜의 일종으로 즉, HTTP는 서버와 클라이언트의 사이에서 어떻게 메시지를 교환할 지를 정해놓은 규칙인 것이다. 80번 포트를 사용하며 HTTP의 구조는 요청(Request)과 응답(Response)으로 구성되어 있다. 예시를 들자면 '클라이언트가 웹 페이지에서 링크가 걸려있는 텍스트를 클릭(요청)하면 링크를 타고 새로운 페이지로 넘어간다(응답)'. 따라서 우리가 사용하는 웹 브라우저에서 인터넷 주소 맨 앞에 들어가는 http://는 바로 이 프로토콜을 사용해서 정보를 교환하겠다는 표시인 것이다.

    참조 : https://namu.wiki/w/HTTP?from=http



    HTTPS (SSL/TLS)



    - SSL을 사용해 암호화된 연결을 하는 HTTP를 HTTPS(Secure)라고 하며, 당연히 웹사이트 주소 역시 HTTP가 아닌 HTTPS로 시작된다. 기본 포트는 80번이 아닌 443번을 쓴다.

     흔히 SSL과 HTTPS를 혼동하는 경우가 많은데, 둘은 유사하긴 하지만 엄연히 다른 개념임을 알아두자. SSL은 다양한 종류의 보안 통신을 하기 위한 프로토콜이며, HTTPS는 SSL 위에 HTTP 프로토콜을 얹어 보안된 HTTP 통신을 하는 프로토콜이다. 다시 말해 SSL은 HTTP뿐만이 아니라 FTP, SMTP와 같은 여타 프로토콜까지 포함하며, HTTPS는 SSL과 HTTP가 조합된 프로토콜만을 가리킨다.

     HTTP는 HTTPS와 달리 암호화되지 않았으며, 중간자 공격 또는 도청의 가능성이 높으므로 HTTPS만큼 안전하지 않다.

    참조 : https://namu.wiki/w/TLS?from=https#s-1.3



    적용방법



    AWS에서 SSL을 적용하는 방법


    1. EC2에 설치된 웹서버에 직접 SSL을 적용하는 방법

    (https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/SSL-on-an-instance.html)


    2. AWS에서 제공하는 AWS Certificate Manager / ELB등을 사용해 SSL을 적용하는 방법

    (https://aws.amazon.com/ko/blogs/korea/new-aws-certificate-manager-deploy-ssltls-based-apps-on-aws/)


    첫번째 방법은 AWS를 사용하지 않아도 특정 운영체제에 올린 웹서버에 적용할 수 있는 방식이다

    SSL인증서를 발급 받을 수 있는 사이트들 중 하나를 골라 발급받고 그 SSL을 웹서버에 적용한다 (사이트 몇군대를 둘러봤는데 3개월 무료 후 유료로 사용할 수 있었다)


    두번째 방법은 AWS에 ACM을 이용해 SSL인증서를 받고 간단한 설정을 통해 직접 웹서버에 적용하는것보다 조금은 편하게 설정할 수 있다.




    생각해 볼 부분



     이 포스팅을 하게 된 이유는 안드로이드앱에서 사용할 API와 관리자 페이지를 만들면서 아무 신경쓰지 않고 http로 만들었는데

    안드로이드 개발자가 사용자 개인정보 데이터를 다루는 경우 https 를 사용하지 않으면 플레이스토어에 올린 앱이 문제가 될 수 있다라고 해서 쓰는 포스팅이다.


     결론으로는, 이번 프로젝트에는 ssl인증서를 적용하지 않았다.

    이유로는 사용자에게 개인정보를 받아 저장하는게 아닌, 서드파티로그인 방식이기 떄문에 다른 특별한 개인정보는 다루지 않기 때문에 적용하지 않았다.


     그래도 공부할겸 적용을 하려했지만.. 도메인 등록, SSL인증서 발급 등 돈이 들어가는 문제가 또.. 이번 프로젝트는 상용화 하는것이 아니고 공부목적이였기 때문에 고민 끝에 관련된 내용을 확인만하고 실제 프로젝트에 적용하지 않기로 결정했다.


    막연히 https는 보안이 조금 더 좋다 라고만 알고 있었는데 관련된 내용을 내 프로젝트에 적용한다고 생각하고 공부하니 깊게 알 수 있었다. 또, 회사에서 진행중인 프로젝트 웹페이지에 접근해보니 https로 접근이 되고 SSL인증서도 있었다.. 다만 http로 들어갔을 경우 

    https로 리다이렉트 해주진 않고 있었다


    지금 글 쓰는 해당페이지도 https가 적용되어 있지 않아 아래와 같이 보인다



    티스토리 메인페이지는 https로 접속이 되어 아래와 같이 보인다



    지금 진행하는 프로젝트에서도 사용자가 많아져 개인정보를 요구할 일이 생기면

    SSL인증서를 적용해야 할텐데..!























    'IT > AWS' 카테고리의 다른 글

    [Ubuntu] Java Spring Project 배포방법  (0) 2018.11.19
    [AWS] EC2 / RDS 란?  (0) 2018.11.08
    [AWS] EC2 인스턴스(ubuntu) 생성 및 연결  (0) 2018.11.06

    댓글