ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Certificate Manager 이용해서 HTTPS 통신하기
    클래스/초급 2022. 3. 22. 14:15
    728x90

    Certificate Manager

    이번 글에서는 AWS Certificate Manager 서비스를 이용하여 인증서를 발급하고
    도메인에 연결해서 HTTPS 통신을 해보자.

    HTTPS 통신

    다른 사이트들이 HTTPS를 사용한다고 무작정 알지도 못하고 사용할 수 없으니
    왜 HTTPS 통신을 하는지 알아봐야겠다.
    간단하게 설명하면 HTTPS는 HTTP의 좀 더 보안적인 부분을 강화한 통신 프로토콜이다.
    사실 HTTP를 사용하나 HTTPS를 사용하나 유저 입장에서는 아무 의미가 없다.

    HTTP vs HTTPS

    하지만 보안적인 관점에서 보면 상당히 유용하다.
    HTTP를 사용하면 사용자가 웹페이지에서 서버에 전송하는 값들이 그대로 노출된다.
    하지만 HTTPS를 사용하면 서버에 전송하는 값들이 암호화되어 전송된다.
    악의적으로 중간에 패킷을 가로채도 값들이 암호화가 되어 있기 때문에 노출되지 않는다.
    그래서 요즘 사용자가 좀 있는 알만한 사이트들은 거의 HTTPS를 사용한다.
    그럼 AWS에서 어떻게 설정을 하면 되는지 알아보자.
    설정 작업을 하기 전에 이전 글에서 설명한 CloudFront와 S3를 먼저 연동해야 한다.

     

    CloudFront를 이용하여 CDN 기능 이용하기

    이번 글에서는 AWS CloudFront를 프론트엔드 파일들을 배포하는 방법을 알아보자. CloudFront는 AWS에서 짧은 대기 시간과 빠른 전송 속도로 콘텐츠를 안전하게 제공하기 위한 서비스이다. html, css, js,

    preiner.tistory.com


    먼저 DNS 서버가 Route53이 아닐 경우 인증서를 설정해보자.

    ZONE 설정

    CloudFront에 인증서를 설정해서 사용하기 위해서는 버지니아 북부 ZONE에서 인증서를 만들어야 한다.

    메뉴

    메뉴 검색란에 Certificate를 검색해보면 해당 메뉴를 찾을 수 있다.
    SSL/TLS 인증서 프로비저닝, 관리 및 배포한다라는 문구를 볼 수 있다.
    SSL은 SSL은 웹사이트와 브라우저(혹은, 두 서버) 사이에 전송된 데이터를 암호화하여 인터넷 연결을 보안을 유지하는 표준 기술이다. TLS는 더 강력한 SSL이라고 이해하면 되고
    보통 HTTPS 통신을 할 때 SSL 인증서가 필요하다고 한다.

    Certificatie Manager 페이지

    Certificate Manager 페이지로 이동해서 바로 인증서 요청을 클릭해보자.

    인증서 요청 - 인증서 유형

    인증서 유형은 브라우저에서 통신할 수 있는 퍼블릭 인증서 요청을 선택한다.

    인증서 요청 - 퍼블릭 인증서 요청

    도메인 이름 부분에 완전히 정규화된 도메인 이름에 사용하고 싶은 도메인을 넣어준다.
    만약에 mail.naver.com처럼 mail 이란 서브도메인에만 인증서를 사용하고 싶으면 전체 도메인을 그대로
    적어두면 되고 모든 서브도메인들에 공통적으로 사용하고 싶으면 *. naver.com으로 넣어주면
    서브도메인이 바뀌어도 사용할 수 있게된다.
    그리고 인증서를 아무나 발급해줄 수 없기 때문에 해당 도메인의 주인인지 식별하기 위해 검증을 한다.
    검증방법은 DNS에 검증 정보를 직접 추가하는 방식인 DNS 검증을 선택한다. 그리고 생성 요청을 한다.

    인증서 목록

    추가된 인증서 목록을 볼 수 있다.
    방금 추가한 인증서 상태를 보면 아직 검증을 하지 않았기 때문에 검증 대기 중으로 되어있다.
    인증서를 사용하려면 도메인의 DNS에 검증을 해야 한다.

    인증서 상태

    CNAME 이름과 CNAME 값이 보일 것이다. 이 정보들을 DNS 레코드에 추가해주면 인증이 된다.

    가비아 DNS

    먼저, AWS에서 제공한 정보를 도메인에 연결된 DNS 레코드에 추가해야 한다.


    DNS 검증하는데 시간이 좀 걸리기 때문에 조금 시간이 흐른 후 다시 목록을 조회해 보면 상태가 발급됨으로
    보인다. 이제 인증서를 사용할 수 있다.

    CloudFront - 상세

    S3와 연동된 CloudFront 상세 화면으로 이동해서 편집 버튼을 클릭한다.

     

    CloudFront - 설정편집

    CloudFront 대체 도메인을 입력하고, 방금 생성한 SSL 인증서를 설정해준다.

     

    CloudFront - 상세

    DNS에 레코드를 추가하기 위해 CloudFront 도메인 이름을 복사한다.

     

    DNS 설정

    CloudFront에 설정한 대로 대체 도메인 www에 대한 CloudFront 도메인 이름으로 DNS에 레코드를 추가해 준다.

     

    사이트 접속

    마침내 HTTPS를 사용하여 설정한 도메인에 접속을 하면 보안에 안전하다는 자물쇠 모양이 크롬 브라우저에서

    잘 보일 것이다. 이렇게 되면 SSL 인증서와 도메인을 설정하여 HTTPS 통신을 할 수 있게 설정을 완료했다.

    만약에 DNS를 Route53을 사용한다면 설정 방법은 비슷하지만 더 쉽게 설정을 할 수 있다.

     


    AWS의 Certificate Manager 서비스를 이용하여 SSL 인증서를 관리하면 여러모로 편한 점이 많다.

    원래는 SSL 인증서를 발급하는 사이트에서 인증서를 돈 내고 발급받아서 서버에 설정해 주어야 하고,

    그리고 보통 인증서의 갱신주기가 1~3년 정도 되기 때문에 갱신 만료가 다 되어가면 구매한 사이트에 다시 접속해서

    인증서를 재발급하고 서버에 다시 설정을 해주어야 한다. 이런 부분들이 자칫 인수인계가 잘 되지 않거나 하면

    갑자기 사이트에 접속할 때 오류가 생기는 엄청난 일을 인증서 하나 때문에 겪을 수도 있다. 

    728x90

    '클래스 > 초급' 카테고리의 다른 글

    AWS Lightsail 이용한 간단한 서버관리  (0) 2022.03.27
    EC2 이미지 만들기  (0) 2022.03.25
    CloudFront를 이용하여 CDN 기능 이용하기  (0) 2022.03.20
    Route53 으로 DNS 관리  (0) 2022.03.17
    AWS 로그인 보안 강화하기  (0) 2022.03.16
Designed by Tistory.