미소를뿌리는감자의 코딩

SSL 인증서 적용 - w. 가비아 + 502 err 해결 본문

프로젝트

SSL 인증서 적용 - w. 가비아 + 502 err 해결

미뿌감 2024. 8. 14. 11:31
728x90

1. 개요

SSL 인증서를 추가해 보았다.

 

2. 적용

https://velog.io/@jungtaesu/AWS-EC2-https-%EC%97%B0%EA%B2%B0-%EA%B0%80%EB%B9%84%EC%95%84

 

AWS EC2 - https 연결 (가비아)

본인이 배포한 사이트의 도메인이 그저 ip와 포트가 적힌 모습이 아닌 원하는 이름으로 배포된 모습을 보면 더욱 뿌듯할 겁니다.오늘은 가비아와 AWS EC2 이용해서 https 연결까지 해보겠습니다.가

velog.io

 

이 분의 블로그를 보고, 적용을 해보았다.

SSL 인증서를 추가해 본 것은 처음이라, aws 과정이 어떤 것을 의미하는지 이해하는 과정을 가져보도록 할 것이다.

 

가비아에서 구매해 두었던 도메인을 이용할 것이다.

 

호스팅 영역 생성을 통해 DNS에서 도메인 이름을 관리할 공간을 만들어 주었다.

aws에서는 아래와 같이 말하고 있다.

 

'호스팅 영역은 example.com과 같은 도메인과 관련 하위 도메인에 대한 트래픽을 라우팅하는 방식에 대한 정보를 포함하는 컨테이너입니다.'

 

이후 네임 서버 레코드들을 확인할 수 있다.

네임 서버가 왜 필요한 지, 어떤 역할을 하는지 알아보도록 하자.

 

네임 서버는 도메인 주소와 IP 주소를 연결해 주는 역할이다.

 

즉, 도메인으로 요청이 오면, 네임 서버에 IP 주소 반환을 요청하게 되고, 해당 IP로 client가 접속 가능하게 되는 것이다.

https://velog.io/@kkj53051000/%EB%8F%84%EB%A9%94%EC%9D%B8Domain%EA%B3%BC-DNS-%EC%A0%95%EB%A6%AC

 

도메인(Domain)과 네임서버, DNS 정리

1. 도메인이란?

velog.io

 

레코드도 여러 종류가 있다.

  • A 레코드 : 도메인 이름을 IP 주소로 변환 [ IPv4 주소와 도메인 이름 사이에 직접 연결을 생성 ]
  • MX 레코드 : 이메일 서버를 지정 [ 이메일을 도메인 메일 서버로 전송 ]
  • CNAME 레코드 : 도메인의 별칭을 정의 [ 별칭 도메인을 정식 도메인으로 연결. 하위 도메인을 도메인 A 또는 AAAA 레코드에 연결 ]
  • NS 레코드 : 네임 서버를 지정 [ 권한이 있는 네임 서버를 지정해 주는 것 ]
  • SOA 레코드 : 특정 도메인에 대한 권한 있는 정보의 출발점을 나타냄 

 

다시 SSL 적용 과정으로 넘어가서, NS 레코드에 있는 네임 서버들을 가비아에 넣어준다.

이를 통해서 구매한 도메인에서, 권한이 있는 네임 서버들을 알려줄 수 있게 되었다.

 

AWS Certificate manager에서 발급을 진행하는데, 잘 진행이 되지 않았다.

 

 

여기서 처음에 potato.shop 으로 넣었을 때, 인증이 잘 되지 않아,  *.potato.shop을 다른 이름으로 추가해 주니, 해결이 되었다.

이 과정은 CNAME 레코드를 생성하기 위한 과정이다. 별칭으로 적은 도메인을 도메인 A로 연결하는 것을 도와주는 레코드이다.

 

이를 다시 가비아에 넣어줘서 인식할 수 있게 해준다.

 

port의 경우 8080 포트와 443 포트를 넣어주었다.

8080 포트는 Application을 8080으로 연결하기 때문에 동일하게 넣어주었으며, HTTPS 로 routing 하기 위해서 443 포트도 대상으로 추가해 주었다.

 

만약에 routing이 성공한다면, http://potato.com으로 연결을 시도하더라도 https://potato.com 으로 routing 되어야 한다.

따라서, 8080 즉, application port가 아니라, 80 포트(HTTP의 기본 포트)를 넣는 것이 맞다.

따라서, HTTP:80으로 추가해 주었다.

 

3. 트러블 슈팅

적용하고 나니, 502 error가 간혈적으로 발생하였다.

즉, 연결이 되었다가 안되었다가 하였다. 아래 블로그를 통해서 그 이유를 알아낼 수 있었다.

 

https://velog.io/@haron/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-AWS-ALB%EC%9D%98-HTTP-502-%EC%98%A4%EB%A5%98%EB%A5%BC-%ED%95%B4%EA%B2%B0%ED%95%B4%EB%B3%B4%EC%9E%90-dba4dfrv

 

[네트워크] AWS ALB의 HTTP 502 오류를 해결해보자

로드 밸런서는 클라이언트와 서버 중간에 위치하며 클라이언트 요청을 풀에서 처리할 수 있는 사용 가능한 서버로 라우팅한다. 한 서버가 다운되면 트래픽은 풀에 있는 다른 서버 중 하나로 자

velog.io

 

즉, Application 의 유휴 제한 시간을 늘려서, load balancer가 FIN 요청을 보내기 전에 Application이 먼저 닫지 않도록 하는 것이다.

728x90