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 체크 사이트에서 확인해보시면 될 것 같습니당
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 |