본문 바로가기
AWS

[AWS] SSL인증서 발급과 EC2인스턴스에 HTTPS 적용

by 코딩공장공장장 2020. 11. 22.

안녕하세요.

 

오늘은 SSL 인증서 발급과  HTTPS 구축을 하는 방법에 대해 알아보겠습니다 .

 

혹시 AWS에 도메인 등록과 도메인과 연결되어 있는 서비스가 없다면 

 

이전 포스팅을 참조해주세요.

 

developer111.tistory.com/20

 

[AWS] EC2 인스턴스 서버에 도메인 연결하기

ec2 서버에 웹프로젝트를 배포하고 ipv4 주소로 접근까지 가능하다면 웹프로젝트를 성공적으로 배포를 한것입니다. 허나, 우리가 평소에 웹사이트에 접근할때 ipv4 주소로 접근하는 경우는 거의

developer111.tistory.com

 

 

 

SSL 인증서 발급

 

 

aws의 Certificate Mangager 서비스로 들어가면 SSL 인증서를 만들 수 있습니다.

 

 

 

 

 

인증서 요청 버튼을 눌러 인증서를 만들어 보겠습니다.

 

 

 

 

 

 

공인 인증서 요청을 선택하고 인증서 요청 버튼을 눌러줍니다.

 

 

 

자 그런 다음 https를 적용시킬 도메인을 적어줍니다. 

 

예를 들어, 도메인A.com 이라면 

 

도메인A.com

www.도메인A.com  

m.도메인A.com

 

이런식으로 만들어 줄수 있고, 하위 도메인을   *.도메인A.com   으로 와일드카드를 사용할수도 있습니다.

 

 

 

 

 

자 이제 다음 버튼을 계속 눌러 생성완료를 해줍니다. 

 

 

생성을 완료하면 등록해준 도메인에 대해 각각 왼쪽에 화살표 모양이 있는데 화살표 모양을 눌러주면 

 

밑에 화면처럼 Route 53 에서 레코드 생성 버튼이 보일 것입니다. 

 

각각의 도메인 마다 Route 53 에서 레코드 생성 버튼을 눌러줍니다.

 

 

 

 

 

이제 [Route 53] -> [호스팅 영역] 으로 들어가서 우리의 도메인을 선택해주면 

 

다음 화면처럼 CNAME태그의 레코드가 방금전에 등록한 도메인별로 등록되어 있음을 확인할 수 있습니다.

 

저는 도메인 3개를 등록해서 3개의 CNAME태그가 생성됬습니다.

 

 

 

 

로드밸런서 등록

 

 

[ec2] -> [로드밸런서] 탭으로 이동해줍니다. 그리고 Load Balancer 생성 버튼을 클릭하여

 

로드밸런서를 생성해보도록 하겠습니다.

 

 

 

 

 

 

우리는 Application Load Balancer를 생성하겠습니다.

 

 

 

 

 

 

이제 부터 Load Balancer의 구성을 만들어보겠습니다. 

 

먼저 이름을 입력해주시고요.

 

 

 

 

 

 

 

그 다음 리스너를 아래와 같이 구성해주세요. 

 

우리는 https를 적용해야 하니 아래와 같이 구성합니다.

 

 

 

 

 

 

가용영역은 반드시 ec2 인스턴스가 생성된 가용영역을 하나를 반드시 포함하여야 합니다. 

 

 

 

 

다음 버튼을 누르고 들어오시면 인증서 선택이 있습니다. 

 

ACM에서 인증서 선택을 클릭하고 방금 만든 SSL 인증서를 선택합니다.

 

 

 

 

 

이제 보안 그룹을 구성하겠습니다. 

 

보안그룹을 저 같은 경우는 기존 ec2인스턴스에서 사용하는 보안그룹을 선택하였는데

 

기존에 보안그룹 선택하시려는 분들 https접속이 가능하게 443포트를 열어주어야 합니다.

 

 

 

 

 

새 보안 그룹을 생성하실 분들은 밑에 제 보안그룹 규칙과 같이 구성해주면 통신이 정상적으로 될 것입니다. 

 

참고로 mysqlDB 사용안하시는 분은 MYSQL/Aurora 설정은 안하셔도 됩니다. 

 

기존 보안그룹 사용하실 분은 로드밸런서를 생성을 마치고 나서 나중에 EC2 인스턴스에서 보안그룹 인바운드 규칙에

 

HTTPS 443포트를 열어주셔도 됩니다.

 

 

 

 

 

 

 

자 그런 다음 이제 대상 그룹 이름을 입력해주시고 대상유형에 반드시 인스턴스를 클릭하여주시고

 

나머지 설정은 기본값을 유지한채 다음 단계로 넘어갑니다.

 

 

 

 

 

이제 로드밸런서에 인스턴스를 등록할건데 대상 인스턴스를 클릭하고 포트를 80으로 입력하고

 

등록된 항목에 추가버튼을 클릭하여 추가시켜주고,

 

포트를 443으로 입력하여 등록된 항목에 추가버튼을 클릭하여 추가 시켜줍니다. 

 

연결할 ec2에 대해 80포트와 443포트 각각 하나씩 등록하여야합니다.

 

 

 

 

 

 

이렇게 로드밸런서 생성을 완료해줍니다.

 

 

 

HTTPS 구축

 

 

 

[Route53] -> [호스팅 영역] 으로 들어와 호스팅 영역 이전에 생성해주었던 도메인을 클릭하여줍니다.

 

 

 

 

 

 

혹시나 이전에 제 포스팅을 보고 여기까지 오신 분들이 있으시다면 

 

그전에 만들어놧던 A 레코드는 삭제해주세요.

 

NS유형, SOA유형, CNAME유형 이 세가지 유형만 있으면 됩니다. 

 

저는 이미 만들어놓고 스샷을 찍어서 레코드가 많이 있습니다. 

 

ssl 인증서를 만들때 하위 도메인을 많이 등록하면 CNAME 유형이 많이 있을테니 레코드 수가 다르다고

 

의아하실 필요는 없습니다.

 

 

 

 

 

 

자 이제 레코드를 생성하겠습니다.

 

밑에처럼 단순 라우팅을 클릭하고

 

 

 

 

 

 

단순 레코드 정의 버튼을 클릭하여주세요.

 

 

 

 

 

밑에 이미지처럼 구성해주시면 됩니다. 

 

로드 밸런서와 연결하는 겁니다. 

 

Application/Classic LoadBalancer에 대한 별칭을 클릭하여주고

 

자신의 ec2가 있는 리전을 선택하여줍니다. 

 

그 밑에는 방금 만든 로드 밸런서를 선택하고 단순 레코드 정의를 하고 레코드 생성을 완료합니다.

 

 

 

 

각각의 하위 도메인에 대해 레코드를 정의해주면 도메인에 대해 https 적용이 완료 되었습니다. 

 

이제 https://도메인주소.com으로 로 연결하면 접속이 이 가능할 것입니다 .

 

 

 

HTTP 에서  HTTPS 리디렉션

 

HTTPS는 HTTP보다 보안이 더 뛰어납니다.  클라이언트들이 HTTP로 접근할 경우 자동으로 HTTPS 로 리디렉션하여

 

HTTPS로 연결을 하도록 구현해보겠습니다. 

 

 

다시 이전에 만든 로드 밸런서를 선택해줍니다.

 

리스너에서 HTTP : 80을 선택하고 편집을 클릭합니다.

 

 

 

기존에 있던 작업을 삭제하고 아래와 같이 구성하여 업데이트 시켜줍니다.

 

 

 

 

이제 http로 접속을 시도해보면 자동으로 https로 변환되어 접속이 됨을 확인할 수 있을 것입니다. 

 

 

 

 

 

 

 

 

 

 

 

반응형