[AWS] API Gateway에 도메인 달기 (Cloudflare)
내 경우에는 도메인 제공자를 Cloudflare로 사용했다.
인증서 가져오기
AWS로 도메인을 샀다면 그냥 있는거 쓰면 되는데, 외부 도메인을 사용한다면 인증서 정보를 가져와야 한다.
cloudflare SSL 탭에서 [인증서 생성]을 클릭해 생성창으로 진입하고
호스트 이름을 이제 우리가 지정하고 싶은 형태로 집어넣는다.
그럼 이렇게 던져준다.
이제 저걸 ACM에 들어가서 넣어주면 된다.
진입해서
원본 인증서->인증서 본문
개인 키->인증서 프라이빗 키로 넣어주면 된다.
인증서 체인이 좀 귀찮은데.. 모든 제공자가 그런지는 모르겠는데 cloudflare는 저거 안넣으면 오류를 던지더라.
선택사항이 아니다.
이런 형태로 넣어주면 되는데,
원본 인증서...
공용 인증서...
공용 인증서는 이걸로 다운받아서 바로 박으면 된다.
https://developers.cloudflare.com/ssl/static/origin_ca_rsa_root.pem
그래서 이렇게 뜨면 성공이다.
이제 저걸로 갖다붙여보자.
도메인 이름 생성
도메인을 연결할 API Gateway로 이동해서, 사용자 지정 도메인 이름을 생성한다.
도메인 이름을 적어주고
방금 만든 인증서도 꼽아준다.
만들면 이런식으로 도메인 이름이 뜨는데, 저걸 또
cloudflare에 들어가서 CNAME으로 박아준다.
그러면 이제 거의 끝이다.
API 매핑만 해주면 된다.


오류코드 521 (Cloudflare)
그런데 내 경우에는 할거 다 했음에도 계속 오류가 뜨는 문제가 있었다.

이 경우에는 SSL/TLS 개요에서 아래 설정이 Flexible로 되어있어서 그럴 가능성이 높다.
저걸 Full(Strict)로 바꿔주면 된다.
그럼 잘 될 것이다.
참조
https://carocci-eugenio.medium.com/connect-cloudflare-to-aws-api-gateway-18e961a6e24f
https://community.cloudflare.com/t/cloudflare-proxy-for-aws-api-gateway/318825/8