개발하고 싶은 초심자

220328 D+68 도메인 주소를 이용한 HTTPS 인증 본문

기술개념정리(in Javascript)

220328 D+68 도메인 주소를 이용한 HTTPS 인증

정새얀 2022. 3. 28. 18:16

1. 백엔드

① ELB 생성 및 ACM을 통한 인증서 발급

(인증서 발급은 무조건 미국 동부 리전에서 만들 것. 다른 곳에 만들면 CloudFront 연결에서 안됨).

 

✷ ELB(Elastic Load Balancing)

: 네트워크 트래픽을 분산하여 애플리케이션 확장성 개선

→ 트래픽을 자동으로 분산해주는 기능. 트래픽의 짐을 덜어주는 역할.

 

 

AWS 사이트에 EC2를 검색한 후 로드 밸런싱 - 로드 밸런서 - 로드 밸런서 생성을 클릭한다.

Application Load Balancer(제일 왼쪽에 있는 것)의 Create 버튼을 클릭한다.

 

Load Balancer name을 ELB로 설정한다.

 

Add listener 버튼을 누르고 HTTPS를 추가한다.

 

Network mapping에서 Mapping 체크박스들을 모두 체크한다(2a 2b 2c 2d)

 

Request new ACM certificate 클릭

 

인증서 요청 - 다음 클릭

 

도메인 이름은 server.deploymentprac.tk

검증 방법 선택은 DNS 검증 - 권장

요청 클릭

 

요청을 클릭하면 위와 같은 파란색 알림창이 뜬다.

인증서 보기 클릭.

 

Route 53에서 레코드 생성 클릭

 

(유어클래스에서 나와있는 대로 했는데 인증서 검증 대기 중만 뜨고 발급이 완료되지 않아서 

3시간동안 페어와 함께 찾아본 결과,

freenom에서 도메인 발급(방법 링크)을 받아 사용할 수 있다는 것을 알게 되었다.

도메인 유료 구매는 유어클래스의 advanced에 링크만 달려있고,

진행하는 과정 도중에 나온 것이 아닌 한참 헤맨 후에 advanced 챕터로 따로 분류되어 있었다.

결국  도메인 등록을 통해서 도메인을 유료 구매해야 한다는 것을 페어 시간이 끝난 후 줌 세션 설명으로 알았다.

이 부분은 왜 실습 과정에 제대로 명시가 안되어있을까...

연간 구매일지라도 실습 중 도메인을 구매하는 것이 빠르게 되기 때문에 권장하는 것이라면

꼭 실습 과정에서 명시를 해줘야 하지 않았을까 하는 생각이 든다.)

 

바로 위의 사진과 지금 사진의 도메인 이름이 다른 이유는

유어클래스에서 주어진 도메인 이름으로는 인증서 발급을 절대 할 수 없었기 때문에

freenom에서 도메인을 구매하여(돈은 하나도 들지 않는다) 다시 인증서를 요청하여

성공했기 때문이다.

 

Default SSL certificate 부분에서 새로고침을 누르면 발급된 인증서를 선택할 수 있다.

 

 

Listeners and routing에서 간단하게 나와있는 부분을 자세히 보면 Create target group이 있다. 클릭.

 

설정 후 Next 클릭.

 

Include as pending below 클릭.

그 다음 Create target group 클릭 하면

 

다시 돌아가서 새로고침하면 아까 생성해준 ec2instance를 선택해줌.

 

제일 밑으로 내려가서 Create load balancer 클릭.

 

ELB 생성 완료.

DNS 이름 주소를 이용하여 접속 테스트 진행.

 

 

② 호스팅 영역에 별칭 레코드 생성(ELB)

Route 53 검색 후 호스팅 영역 - 레코드 생성 클릭.

 

트래픽 라우딩 대상에서 별칭 토클을 on 한 뒤 사진에 있는대로 선택 - 레코드 생성.

 

레코드 생성 완료.

 

 

2. 프론트엔드

① CloudFront 배포 생성 - S3와 CloudFront 연결하기

CloudFront: CDN(캐싱, 가용영역에서 사용 가능)

CloudFront 검색 - CloudFront 배포 생성 클릭

 

원본 도메인 입력에 Amazon S3에 있는 것으로 선택.

 

뷰어 프로토콜 정책을 Redirect HTTP to HTTPS로 변경.

 

사용자 정의 SSL 인증서는 아까 만든 인증서로 가져올 것. 새로고침하면 나옴.

 

기본값 루트 객체를 index.html로 지정한 후 배포 생성 클릭.

 

배포 생성 클릭 후 나오는 페이지에서 오류 페이지 - 사용자 정의 오류 응답 생성 클릭.

 

HTTP 오류 코드를 설정한 후 오류 응답 사용자 정의를 '예'로 선택한다.

응답 페이지 경로를 /index.html로 설정한 후 응답 코드를 200으로 선택, 생성한다.

 

마지막 수정 단계를 '배포' 인 것을 확인한 후 배포 도메인 이름을 클릭한다.

 

이 화면이 나오면 성공.

 

② 호스팅 영역에 별칭 레코드 생성하기

위에서 백엔드 때 한 것과 많이 다르지 않아 캡쳐본은 많이 넣지 않았다.

Route 53 - DNS 관리(호스팅 영역) - 도메인 이름 클릭 - 레코드 생성 

레코드 이름은 client로 해두고,

별칭 토클을 켜서

트래픽 라우팅 대상에 이렇게 선택하고 레코드 생성하면 끝.

 

🌟 코드스테이츠에서 불친절한 챕터 내용은 그냥 구글링해서 실질적인 공부를 해보라는 의미겠거니,

하면서 넘겼고, 보통은 어느 정도의 챕터 설명을 보고 가닥을 잡아 가거나 일단은 따라해보고 안되면 구글링을 했다.

하지만 이번 유어클래스의 챕터에서의 사진과 실질적으로 aws에서 실습해보는 것이 전혀 다르기도 했지만,

부연설명 없이 정말 옛날에 했던 캡쳐본으로만 advanced 챕터 내용을 전부 채웠다는 것은 정말 아닌 것 같다.

(이 부분은 예전부터 많이 제기되었던 문제라고 들었는데, 아직도 고쳐지지 않았음에 조금 힘들었다ㅠㅠ)

 

🌟 프로젝트에서 실질적으로 하는 서버와 클라이언트 배포이고 매우 중요하다고 얘기하면서,

제일 중요한 인증서의 리전 설정을 일언반구 하지 않았다는 것이 많이 아쉽다.

CloudFront 과정에서 인증서 리전 설정은 무조건 미국 동부 리전으로 해야 한다는 것을 전혀 몰랐고,

유어클래스에 올라와있는 사진만을 바탕으로 했기에 주어진 페어 시간 내에 전부 실습해보지 못해 챕터 사진을 가져왔다.

 

 

Comments