← 글 목록

notes

EC2 HTTPS 설정 가이드

EC2 서버 HTTPS 인증서·도메인·nginx 설정을 연결하는 가이드.


가이드 작성에 참고한 문서는 다음과 같습니다.

1. EC2에 도메인(HTTP) 연결

  • 도메인 구매가 필요합니다. (가비아에서 구입 가능)

  • Route 53 → ‘호스팅 영역 생성’ 클릭

  • 구입한 도메인 이름 입력 → ‘호스팅 역역 생성’ 클릭

  • 생성한 도메인에 대해 ‘레코드 생성’ 클릭

  • IPv4 퍼블릭 IP 입력 후, 레코드 생성 클릭

  • 가비아와 연결할 주소 확인 (NS 유형에서 ns-로 시작되는 4개의 주소)

  • 고도몰 로그인 → 이용 중인 서비스 → 해당 도메인의 ‘관리' 버튼 → 네임서버 설정 → 위의 4개의 주소 입력

2. 인증서 생성

  • AWS Certificate Manager(ACM) → ‘요청’ 클릭 → 퍼블릭 인증서 요청 → ‘다음' 클릭

  • 도메인 이름 입력 (와일드 카드인 *를 도메인 앞에 붙여서 입력. 예를 들어, *.(domain 명) 형태) → ‘요청'

  • 해당 [인증서 ID] 클릭 → Route 53에서 레코드 생성 → 체크 후 ‘레코드 생성’ 클릭

  • 생성 후 몇 분 후, 다음과 같이 상태가 성공으로 전환됨

3. 도메인에 HTTPS 적용

  • EC2 → 로드 밸런서 → ‘로드 밸런서’ 생성 버튼 클릭

  • Application Load Balance(ALB)을 선택

  • New EC2 Experience의 On/Off에 따라 만나게 되는 화면이 다릅니다.

  • Load balancer name 작성

  • Network mapping 작성 (본인의 인스턴스 가용영역 포함 2개 / 번거롭다면 4개 다 체크)

  • EC2 인스턴스와 동일한 보안 그룹 선택

  • 보안 그룹에서 HTTPS : 443 포트를 인바운드, 아웃바운드에 추가시켜주기

    (이 과정은 로드 밸런스 생성 이후에 진행해줘도 되나, 꼭 잊지 말고 해줘야 합니다.)

    ( EC2 → 인스턴스 → [다루고 있는 인스턴스 선택] → 보안 그룹 파란색 링크 → 인/아웃바운드 규칙 편집)

  • 아래와 같이 HTTP : 80, HTTPS : 443 리스너를 생성

  • 위의 사진에서 Create target group을 클릭 → Port 번호 변경 → ‘Next’ 클릭

    ( 만약, 1207 포트를 사용한다면 80 대신 1207을 포트에 입력해야 함)

  • 관련 인스턴스를 선택 → ‘Include as pending below’ 클릭

  • ‘Create target group’ 클릭

  • 타켓 그룹 생성 확인

  • Forward to에 타켓 그룹 추가 (새로고침을 누르면 타겟그룹이 생길 것임)

  • 이전에 받은 인증서(10번 과정에서 인증서를 획득)를 등록

  • ‘Crete load balancer’ 클릭

  • Route53 → ‘호스팅 영역' 클릭 → 도메인 이름 클릭 → ‘레코드 생성’ 클릭

  • 아래와 같이 설정 후, ‘레코드 생성’ 클릭

  • 다음과 같이 레코드가 잘 생성된 것을 확인할 수 있음

  • api 정상 작동 확인

4. 리다이렉트 적용 (HTTP로 접근 시 HTTPS로 연결시키기)

  • EC2 → 로드 밸런서 → 리스너

  • HTTP: 1207 규칙 추가 (가져온 사진이기에, 아래에서는 HTTP: 80으로 쓰여있음)

  • HTTP: 443 규칙 추가

  • http로 url 연결 시, https로 자동 연결됨을 확인 가능