본문 바로가기

항해99

[항해99] 도메인 구매하고 AWS EC2에서 http -> https 변경하기 (+AWS 배포 방법)

HTTP(Hypertext Transfer Protocol)와 HTTPS(Hypertext Transfer Protocol Secure)

 

인터넷에서 데이터를 전송하는 데 사용되는 프로토콜

이 두 프로토콜은 웹 브라우저와 웹 서버 간의 통신을 가능하게 해줌

 

HTTP 

  • HTTP는 클라이언트(웹 브라우저)와 서버 간에 데이터를 전송하기 위한 텍스트 기반의 프로토콜
  • HTTP는 기본적으로 보안이나 데이터 암호화를 제공하지 않으며, 데이터가 평문으로 전송
  • HTTP는 웹 페이지의 요청(request)과 응답(response)을 처리하는 데 사용
  • HTTP는 주로 웹 브라우저에서 웹 서버 HTML 문서, 이미지, 스타일 시트 등을 요청하고 받아오는 데 사용
  • URL 예: http://www.example.com

HTTPS

  • HTTPS는 HTTP의 보안 버전으로, 데이터 전송을 암호화하여 보안을 강화한 프로토콜
  • HTTPS는 SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용하여 데이터를 암호화
  • HTTPS는 서버와 클라이언트 간의 통신을 보호하고 중간자 공격과 데이터 도난을 방지
  • HTTPS는 보통 웹 사이트의 로그인 페이지, 결제 페이지 및 기타 민감한 정보를 전송하는 경우에 사용
  • URL 예: https://www.example.com

주요 차이점

  • 보안: HTTPS는 데이터를 암호화하여 보호하므로 더 안전하지만 HTTP는 데이터를 평문으로 전송하기 때문에 보안에 취약
  • 프로토콜: HTTPS는 보안 계층을 추가한 HTTP의 확장. HTTPS는 SSL 또는 TLS를 사용하여 데이터를 암호화하고 인증
  • 포트: HTTP는 기본적으로 80번 포트를 사용하고 HTTPS는 443번 포트를 사용
  • URL: HTTPS로 시작하는 URL은 브라우저에 보안 아이콘이 나타나며, 사용자에게 안전한 연결임을 시각적으로 알려줌

 

도메인 구매하고 AWS EC2에서 http -> https 변경하기

 

1. 가비아에서 도메인 구매하기!

https://domain.gabia.com/regist/regist_domain

 

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

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

domain.gabia.com

 

위 링크 클릭 후 원하는 도메인 주소를 검색하시면 이렇게 구매할 수 있는 도메인 주소들이 뜹니다.

 

선택 후 신청하기를 누르시면 이런 페이지로 접속이 되는데,

신청정보에 3년으로 되어있는 것을 꼭! 1년으로 바꿔주셔야 이벤트가로 구매하실 수 있습니다.

(1년 후 자동으로 삭제 됩니다)

 

2. AWS Route 53에서 인증하기

먼저, 탄력적IP를 활성화 해주시고, EC2 인스턴스에 적용 후 다음 단계로 넘어가시는 걸 추천드립니다~

AWS 로그인 후 route53 검색해서 들어가 줍니다

 

왼쪽 상단에 목록을 누르시면 이렇게 뜨는데, 여기서 호스팅 영역을 클릭해서 들어가줍시다

 

여기서 호스팅 영역 생성을 눌러줍니다

 

구매해놓았던 도메인 입력 후 유형을 퍼블릭 호스팅 영역으로 선택!

 

그러면 이렇게 레코드가 생성된 것을 확인 할 수 있습니다 ~~

현재 NS, SOA 두 가지 유형이 생성되어 있는데,

NS에 값/트래픽 라우팅 대상에 있는 4가지 값들을 가비아로 돌아가서 추가를 해주겠습니다.

(구입한 가비아의 도메인의 네임서버을 방금 생성한 도메인 영역의 것으로 바꿔주는 것)

 

my가비아 - 서비스 관리 - 관리 클릭

 

이런 페이지가 나오는데, 여기서 네임서버 - 설정 아까 위에서 받은 4가지 값들을 순서대로 입력해주세요

 

3. ACM 인증서 발급 받기

그 다음은 SSL 인증서를 발급 받아야합니다!

검색창에 Certificate Manager 검색 후 들어가주시고 인증서 요청을 눌러주세요!

 

인증서 유형 : 퍼블릭 인증서 요청

도메인 이름에는 구매하신 도메인의 온전한 도메인주소를 작성해주셔야 합니다! (example.com)

검증 방법 : DNS 검증

키 알고리즘 : RSA 2048

 

발급 받으신 후 인증서 나열을 클릭하면 발급 신청을 해둔 인증서를 확인할 수 있습니다~

저는 발급이 완료된 상태라서 저렇게 뜨지만 < 검증 대기중, 아니요, 부적격 > 이 뜨신다면 정상입니다!

 

이 과정에서 1시간 ~ 3시간까지 걸렸었는데, 구글링 하다보니까 기다리지 않고 빠르게 발급 받는 방법이 있더라구요!

필요하신 분은 아래 블로그 확인해주시면 될 것 같습니다~!

https://ziszini.tistory.com/139

 

[AWS] AWS Certificate Manager 에서 인증서 요청 후 상태 검증대기중 해결

상황 ACM에서 인증서 요청 후 상태가 “검증대기중” 에서 1시간 이상 바뀌지 않았다. 앞서 인증서 요청 후 삭제를 2번 정도 했던지라 3번째 요청에서는 검증대기중 상태가 길어졌다.. 이전에 동

ziszini.tistory.com

 

발급받은 인증서 ID를 클릭 하시면 아래 사진처럼 나오는데,

여기서 Route 53 레코드 생성을 눌러주세요!

 

그럼 이렇게 나올텐데, , 도메인 이름 옆에 체크 상자 클릭 후 레코드 생성 눌러 주시면 됩니다!

(저는 생성되어 있는 상태라 안떠요)

 

EC2 인스턴스 -> 보안 그룹 클릭

 

보안 그룹 인바운드 규칙 편집을 눌러주시고

아래 5173을 제외한 포트를 모두 추가해주세요!

 

4. 타켓 그룹(대상 그룹) 생성

EC2 화면에서 오른쪽 탭 아래쪽에 대상 그룹을 클릭해줍니다.

 

타겟 그룹 생성을 눌러줍니다

그러면 아래 사진처럼 항목들이 나오는데, 인스턴스 선택해주세요

 

대상 그룹 이름에는 아무거나 적어주셔도 됩니다~

프로토콜에는 HTTP, 8080

VPC에는 전에 발급 받아 놓았던 인증서를 선택해주세요~

프로토콜 버전 : HTTP1

 

그리고 아래에 이런 헬스체크를 할 수 있는 api를 입력해야합니다.

오픈되어있는 200OK를 받을 수 있는 GET api가 있으시면, 해당 주소를 입력해주시고, 

없으신 분들은 무조건 200 OK 반환하는 api 생성해 주시고 해당 api 적어주시면 됩니다 :)

+ 컨트롤러만 생성 해주셔도 되고, 추가해주셨다면 재배포 꼭 해주셔야 적용됩니다~

+ SecuriryConfig 에서 permitAll 되어있는 컨트롤러에서 진행해주세요

 

그 다음 페이지로 넘어가서 인스턴스 체크박스 선택 -> 8080 -> 아래에 보류 중인 것으로 포함 -> 타겟 그룹 생성

 

이렇게 타겟 그룹까지 생성이 되었다면 로드밸런서를 생성해주겠습니다!

 

5. 로드 밸런서 생성

인증서 생성이 완료된 것을 확인하셨다면 왼쪽 탭에 로드밸런서 선택 후 로드밸런서 생성을 눌러주세요~

 

첫 번째 Application Load Balancer 선택

 

로드 밸런서 이름은 아무거나 입력해주시고

인터넷 경계 / IPv4

 

VPC 지정해주시고

리전이 한국이라면 2a, 2c를 선택해주세요!

 

보안그룹은 꼭! 인스턴스에서 사용하는 보안 그룹으로 선택해주세요!!

 

리스너도 수정해주겠습니다~

HTTP / 8080 / 전에 생성했던 대상 그룹으로 선택해주세요

 

445 포트도 추가해주겠습니다!

HTTP / 8080 / 전에 생성했던 대상 그룹으로 선택해주세요

여기서 인증서는 ACM, 아까 생성해두었던 인증서를 선택해주시면 됩니다

 

여기까지 하셨다면 로드 밸런서 생성 클릭!

 

자~~ 이제 거의 다 왔습니다!! 

 

6. 도메인 레코드 생성

다시 Route 53 으로 가서 호스팅 영역 클릭!

 

들어가면 이런 화면이 나오는데, 도메인 이름을 클릭해주세요 (파란색 글씨)

 

현재 저는 A 레코드가 생성되어 있는 상태라, 4개가 보이는데

아마 여러분들은 3개만 보이실 겁니다!

여기서 레코드 생성을 눌러주세요

 

아래 사진처럼 설정 후 레코드 생성을 완료해주세요~~

따로 설정해야하는 이유가 없다면, 이름은 비워주세요

 

그럼 이렇게 A레코드가 생성이 됩니다!

이제 이걸 DNS에 넣어줘야해요

 

가비아 -> DNS 관리 -> 설정

 

값/ 위치 : 발급받은 탄력적 IP

저는 www.example.com  이렇게 쳐도 나올 수 있도록 www도 추가해주었습니다~

도메인 적용까지 좀 걸린다는데, 확인해보고 싶으시다면 dns 체크 사이트에서 확인해보시면 될 것 같습니당

https://www.whatsmydns.net

 

DNS Propagation Checker - Global DNS Checker Tool

Instant DNS Propagation Check. Global DNS Propagation Checker - Check DNS records around the world.

www.whatsmydns.net

 

다시 AWS로 돌아오셔서 로드 밸런서 규칙을 추가해주겠습니다~~

 

저는 현재 이미 적용이 된 상태라 이렇게 되어있습니다

 

443 규칙을 먼저 추가해주겠습니다.

규칙 추가 클릭

 

첫 번째는 빈 칸으로 넘어가주시고 조건 추가를 눌러주세요!

여기서 규칙 조건 유형은 호스트 헤더

 

그 아래는 구매하신 도메인을 써주세요!

 

확인 버튼을 누르시면 이렇게 나와요!

 

다음을 누르고

대상그룹으로 전달 / 전에 만들었던 대상 그룹 선택

 

다음으로 넘어가서 우선 순위 : 1

여기까지 하시면 443 포트는 완료되었습니다!

 

이제 8080 포트에 규칙을 추가해줄게요

 

위에 443 포트와 동일하게 호스트 헤더 선택 후 도메인을 입력해주세요

 

여기서 부터 달라요!

8080포트는 URL로 리디렉션

HTTPS / 8080

 

우선 순위 : 1

 

자 여기까지 완료되었다면 이렇게 보이실거에요~~

 

이제 한 가지만 확인해보면 진짜 완료입니다!!!

 

7. Health Check

 

아까 해두었던 헬스체크가 잘 되었는지, 확인하러 가야해요

EC2 -> 대상 그룹 -> 대상 그룹 이름 클릭 (파란글씨)

 

들어가시면 이렇게 뜨는데! 정상으로 잘 보인다면 완료됐습니다

 

이제 도메인에 접속해보면

 

짠!!!! 이렇게 https로 무사히 접속되는 것을 확인할 수 있습니다.

 

길고 길었던 HTTPS 변환하는 방법을 알아봤는데, 4번을 해봐도 뭔가 안되는게 항상 생기더라구요 ㅋㅋㅠㅠ

어려운 배포의 길...

 

+ AWS 배포 방법

https://teamsparta.notion.site/AWS-EC2-RDS-d37107b67d474e51aae4896d3cb90af9

 

'항해99' 카테고리의 다른 글

[항해99] WIL 24.03.23  (1) 2024.03.23
[항해99] WIL 24.03.16  (0) 2024.03.16
[항해99] WIL 24.03.09  (0) 2024.03.09
[항해99] WIL 24.03.03  (0) 2024.03.03
[항해99] WIL 24.02.25  (0) 2024.02.25