SpringBoot/개인프로젝트

AWS EC2 https 적용

2023. 5. 1. 12:47
목차
  1. 도메인 구매 및 EC2와 연결
  2. HTTPS 설정
  3. ACM 요청
  4. 로드밸런서 설정
  5. Nginx 설정
  6. Route 53 설정

도메인 구매 및 EC2와 연결

트위치 OAuth 로그인 사용 시 리디렉션 URL은 https 프로토콜을 사용해야 한다.

 

우선 도메인을 구매하자

 

카페24, 가비아, freenom 등에서 구매할 수 있는데 가비아에서 한번 해보겠다.

https://domain.gabia.com/

 

가비아: 대한민국 도메인 점유율 1위

대한민국 100만 도메인 등록 업체

domain.gabia.com

 

사용하려는 도메인을 입력한다.

 

사용가능한 도메인 목록이 나오는데 원하는 것을 선택하고 신청한다.

 

네임서버는 AWS를 이용 중이니 타사 네임서버 사용을 선택한다.

 

네임서버 정보를 입력하기 위해 AWS의  Route 53으로 이동한다.

 

호스팅 영역을 생성한다.

 

가비아에서 구매하려는 도메인 이름을 입력한 뒤 호스팅 영역을 생성한다.

 

생성된 호스팅 영역의 세부정보를 보면 레코드가 있는데 그 중 NS 유형의 네가지 네임서버를 입력해준다.

 구매 후 My가비아의 DNS 관리툴로 가면 구매한 도메인을 확인할 수 있다. (시간이 조금 걸릴 수 있다.)

 

다시 Route 53의 호스팅 영역으로 와서 레코드를 생성한다.

 

 

값에는 EC2에 할당한 탄력적 ip주소를 입력하고 레코드를 생성한다.

 

이제 등록한 도메인 이름으로 접속하면 접속이 된다.

 

 

HTTPS 설정

ACM 요청

Certificate Manager로 이동 후 인증서 요청을 클릭한다.

 

 

다음

 

 

구입한 도메인 이름을 입력한 후 요청을 클릭한다.

 

인증서 나열 페이지에서 방금 생성한 인증서를 클릭한다.

 

 

Route 53에서 레코드 생성을 클릭한 후 생성한다.

 

 

로드밸런서 설정

EC2로 이동한 후 로드 밸런서를 클릭한다.

 

Create load balancer를 클릭한다.

 

Application Load Balancer를 클릭한다.

 

Load balancer name을 입력한다.

 

 

인스턴스와 동일한 지역을 포함해 2개 이상의 영역을 선택한다.

 

EC2의 대시보드에서 확인할 수 있다.

 

 

 

보안그룹은 EC2에 적용한 보안그룹과 동일한 그룹을 선택한다.

 

Default action아래의 Create target group를 클릭해 그룹을 생성한다.

 

Target group name을 입력한 후 next를 클릭한다.

 

로드밸런서를 적용할 인스턴스 선택 후 Include as pending below를 클릭 한 후 create target group을 클릭한다.

 

 

 

위 이미지에는 HTTPS에 Default action에 HTTPS로 되어 있는데, HTTPS가 아니라 위에서 생성한 HTTP 대상 그룹을 넣어야 한다.

 

Default SSL/TLS certificate에 아까 만든 Certificate를 선택한다. 그리고 create load balancer를 클릭한다.

 

 

생성한 로드밸런서를 클릭한 후 아래에서 Listners 부분에서

 

HTTPS를 선택한 후 Actions의 Add SSL certificates for SNI를 클릭한다.

 

 

발급받았던 인증서를 선택한 후 include as pending below를 클릭한다.

 

그리고 add pending certificates를 클릭한다.

 

로드밸런서의 listners 탭으로 다시 와서 http 클릭하고 Rule에서 Manage ruels를 클릭한다.

 

 

규칙 옆의 + 버튼을 클릭한다.

 

규칙 삽입을 클릭한다.

 

호스트 헤더에 도메인 명을 입력해주고 전달 대사으이 대상 그룹에는 아까 만든 http 대상 그룹을 선택한다.

 

규칙을 저장한 후 HTTPS로 이동한다.

 

http로 설정한 대상그룹을 전달대상으로 선택한 후 저장한다.

 

지금까지의 로드 밸런서 설정은 http:80 요청이 들어오면 http:80요청으로 nginx로 보내고 https:443 요청이 들어오면 http:80요청으로 nginx로 보내는 것이다.

 

 

Nginx 설정

sudo vim /etc/nginx/nginx.conf

로드밸런서는 80이던 443이던 80포트로 nginx로 들어오게 해준다. 하지만 443이면 그대로 https가 적용되지만 80이었다면 https가 아니라 http로 접속된다. 따라서 조건문을 통해 https로 들어오지 않으면 https로 다시 설정해서 연결하도록 하는 설정이다.

 

Route 53 설정

호스팅 영역으로 와서 아까 생성한 A 유형의 레코드를 선택한다.

그리고 레코드 편집화면에서 별칭을 활성화한다.

위와 같이 선택한 후 저장한다.

 

이제 http로 접속해도 https로 된다.

 

 

트위치 콘솔에서 OAuth 리디렉션 URL을아래와 같이 바꾸고

https://도메인명/login/oauth2/code/twitch

 

EC2에 직접 입력한 application-oauth.properties에서

spring.security.oauth2.client.registration.twitch.redirect-uri={baseUrl}/{action}/oauth2/code/{registrationId}

redirect-uri 부분을 트위치 콘솔에 적은 리디렉션 URL을 입력해준다.

{baseUrl}을 사용할 경우 https://도메인명으로 나오지 않고 http://도메인명으로 나오기 때문에 {baseUrl} 대신 직접 입력해줘야 한다.

 

nginx의 설정을 만져야 하나 여러 방면으로 고민한 끝에 properties에 redirect-uri를 변수로 설정한 것이 떠올라 직접 입력했더니 정상적으로 작동되었다.

'SpringBoot > 개인프로젝트' 카테고리의 다른 글

Ajax가 작동이 되지 않는 문제  (0) 2023.05.01
트위치 API 채널 검색 결과를 받아오는 과정에서의 문제  (0) 2023.05.01
AWS 설정  (0) 2023.05.01
Summernote 적용  (0) 2023.05.01
트위치 OAuth 로그인  (0) 2023.05.01
  1. 도메인 구매 및 EC2와 연결
  2. HTTPS 설정
  3. ACM 요청
  4. 로드밸런서 설정
  5. Nginx 설정
  6. Route 53 설정
'SpringBoot/개인프로젝트' 카테고리의 다른 글
  • Ajax가 작동이 되지 않는 문제
  • 트위치 API 채널 검색 결과를 받아오는 과정에서의 문제
  • AWS 설정
  • Summernote 적용
ewok
ewok
ewok
기록장
ewok
전체
오늘
어제
  • 분류 전체보기
    • 웹개발 교육
      • HTML
      • CSS
      • JavaScript
      • Database
      • Java
      • jQuery
      • Ajax
      • Bootstrap
      • jsp
      • Spring
      • MyBatis
      • 프로젝트
    • JAVA
    • SpringBoot
      • 기초
      • AWS
      • 개인프로젝트
    • Spring Security
    • JPA
    • 테스트코드
    • Error
    • CS
      • 컴퓨터 구조
      • 이산수학
    • 알고리즘
      • 정리
      • Java
    • SQL
    • 자격증
      • SQLD
      • 정보처리기사
    • Git

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • branch
  • sqld 자격증
  • 노랭이
  • sqld 합격
  • 브랜치
  • GIT
  • 생성자
  • this
  • merge commit
  • SQLD
  • base
  • 버전 관리
  • org.hibernate.tool.schema.spi.CommandAcceptanceException
  • org.springframework.beans.factory.UnsatisfiedDependencyException
  • git bash

최근 댓글

최근 글

hELLO · Designed By 정상우.
ewok
AWS EC2 https 적용
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.