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로 자동 연결됨을 확인 가능