먼저 http와 https의 차이가 뭘까? 바로바로 s가 붙었다는것이다!
그렇다면 s는 무엇을 의미할까? 바로바로 Security다. SSL/TLS 인증서를 받아야 한다.
좀더 자세히 알아보자.
- 보안 및 데이터 암호화: HTTP (HyperText Transfer Protocol): HTTP는 데이터를 평문으로 전송하기 때문에 보안성이 낮음. 데이터가 암호화되지 않아 누군가가 데이터를 가로채면 그 내용을 읽을 수 있음. HTTPS (HTTP Secure): HTTPS는 HTTP의 보안 버전으로 데이터를 암호화하여 전송함. 이는 SSL (Secure Sockets Layer) 또는 TLS (Transport Layer Security) 프로토콜을 사용하여 데이터의 안전한 전송을 보장한다. 따라서 중요한 개인 정보나 민감한 데이터를 주고받을 때 사용된다.
- 포트 번호: 기본포트로HTTP는 80, HTTPS는 443을 사용함
- 인증서: HTTP: HTTPS는 인증서를 요구하고, 웹 브라우저는 인증서를 확인해 서버의 신뢰성을 확인함. HTTPS: 인증서를 사용하여 웹 사이트의 신뢰성을 보장하고, 데이터의 무결성과 보안을 유지함.
그럼 어떻게 적용할까?
나는 이미 가비아에서 도메인을 구매해서 route53에서 세팅을 마친 상태다.
ㅇ 먼저, aws에 certificate Manager에 들어간다.
여기선 설명에 나와있듯이 SSL 인증서를 프로비저닝해준다.
ㅇ 들어가서 인증서 요청을 눌러준다.
퍼블릭 인증서 요청을 누르고, 도메인을 입력해준다.
DNS 검증, RSA 2048을 선택해준다.
ㅇ 왼쪽에 인증서 나열에서 id누르고 Route 53에서 레코드 생성을 누른다.
생성하면 조금 기다리면 (나는 30분정도 기다림)
성공되면서 인증서가 발급된다.
ㅇ EC2 인바운드 규칙 수정
https는 443포트를 사용하므로 규칙을 수정해야한다.나는 8080을 사용하니
8080으로 ipv4, ipv6, 443으로 ipv4,ipv6 모두 허용해준다.
ㅇ 타겟 그룹 생성
생성완료되면 밑에서 등록해준다.
ㅇ 로드밸런서 생성
Application Load Balancer, Network Load Balancer, Gateway Load Balancers ,Classic Load Balancer 중에 첫번째 ALB를선택.
가용영역에는
다음 단계에선 이렇게,
그룹은 아까 만들어놓은 대상그룹 선택.
그러면 이렇게 로드밸런서까지 생성완료.
ㅇ 다음에 Route53으로 가서 A유형의 레코드를 편집한다.
아까 만들어둔 로드밸런서로 적용.
ㅇ 로드밸런서 리스너 편집
먼저 443.
저기를 누르고,
저기 연필모양을 클릭.
왼쪽의 연필모양 클릭해서 수정하면된다.
그다음은 8080규칙에 새로생성해준다. 기존에있던건 그대로 둬도 된다.
ㅇ 그다음 health check
EC2 > 로드밸런싱 > 대상그룹 > 대상 > 상태를 본다.
unhealthy면
경로가 / 기 때문에 knockknockofficial.shop/ 에 get요청을 보내면 무조건 200번의 코드를 응답하는 api를 만들어준다.
나는 경로를 /home/health 로 바꾸고
/home/health api를 만들어줬다.
200번대만 나오게하면된다. 그러면
대상그룹에 8080의 상태가 healthy로 바뀔것이다.
그다음에 api보낼 주소를
https://knockknockofficial.shop 으로보내도 되고, https://knockknockofficial.shop:443 으로 보내도된다.
나는 기본포트가아닌 8080포트를 썼으므로
http://knockknockofficial.shop:8080 으로 보내도 https로 연결해준다.
끝!!!
이 포스팅을 보고 많은 도움이 되었다. 정말 감사합니다!!!
'프로젝트 > 낙낙(KnockKnock)' 카테고리의 다른 글
회고 (2) | 2023.11.21 |
---|---|
OAuth2 again!!! (0) | 2023.10.30 |
이메일인증을 구현해보자(JavaMailSender)-2(회원아이디,패스워드찾기 )(성공) (0) | 2023.09.19 |
Spring Security JWT 유저, Oauth에 대한 대대적인 공사-4(Oauth2 테스트)(성공) (0) | 2023.09.15 |
이메일인증을 구현해보자(JavaMailSender) (0) | 2023.09.15 |