S3 + cloudfront + acm + route53 + 구글도메인(외부도메인)

sangwoo noh·2023년 10월 17일
0

AWS

목록 보기
30/30

s3에 배포한 정적 파일(프론트엔드)을 인증서와 연동하는 내용이다.

acm 외부 도메인 인증서 인증 과정

갓 지피티 답변
AWS Certificate Manager (ACM)를 사용하여 SSL/TLS 인증서를 발급받고자 할 때, 도메인의 소유권을 증명하기 위해 **DNS validation** 또는 **Email validation** 중 하나를 선택해야 합니다. 대부분의 경우, DNS validation이 더 간편하며, 구글 도메인을 사용하는 경우에도 동일한 절차를 따릅니다.

DNS validation을 사용하려면 다음 단계를 따라주세요:

1. **ACM에서 인증서 요청**:
   AWS Certificate Manager에서 "Request a certificate"를 선택한 후, 인증서를 사용하고자 하는 도메인 이름을 입력합니다. (예: `example.com` 및 `*.example.com`)

2. **DNS validation 선택**:
   Validation method에서 "DNS validation"을 선택합니다.

3. **CNAME 레코드 정보 획득**:
   ACM은 도메인 소유권을 확인하기 위해 DNS에 추가해야 하는 CNAME 레코드 정보를 제공합니다.

4. **구글 도메인에서 CNAME 레코드 추가**:
   구글 도메인 관리 콘솔에 로그인하고, 해당 도메인의 DNS 설정 페이지로 이동합니다. ACM에서 제공받은 CNAME 레코드 정보를 구글 도메인에 추가합니다.

5. **인증서 발급 대기**:
   CNAME 레코드 추가 후 일정 시간이 지나면 ACM은 자동으로 DNS를 체크하여 도메인의 소유권을 확인하고 인증서를 발급합니다. 이 과정은 몇 분에서 몇 시간까지 걸릴 수 있습니다.

"Import certificate" 방식은 이미 소유하고 있는 인증서를 ACM에 가져오려 할 때 사용합니다. 이 경우는 별도의 도메인 소유권 검증 절차 없이 인증서의 키와 인증서 체인만 제공하면 됩니다.

대부분의 사용자는 ACM에서 직접 인증서를 발급받기를 원하므로 "Request certificate" 방식을 사용하게 됩니다.
- 이때 인증을 example.com과 *.example.com 두가지 형태를 다 인증 받아두면 경우의 수가 줄어든다. www.라는 형식을 보통 사용할테니 *.example.com만 인증을 받아도 상관없긴하다.
  • 참고로 구글 도메인 주소를 알려드립니다
    https://domains.google.com/registrar/
    여러분들은 어차피 다른곳에서 주로 발급받으셨을테니 거기도 비슷하게 cname입력하는 부분이 있을꺼에요

  • 이후 cloudfront에서 custom ssl 인증서를 설정할때 인증서의 위치가
    미국 동부(노스버지니아) 지역(us-east-1)에 있는 인증서만 인식하니 ACM의 인증시 위치를 us-east-1로 변경하고 진행하자.

acm인증 이후의 과정

역시나 갓 지피티의 답변

`www.example.com`을 사용하고 싶다면 CloudFront와 ACM을 연동하면서 Route 53을 함께 사용하여 DNS 설정을 완료해야 합니다. 아래는 전체적인 절차를 요약한 것입니다:

1. **ACM에서 SSL 인증서 획득**: 이미 `*.example.com` 및 `example.com`에 대한 인증서를 획득한 것으로 보입니다. 이 인증서를 CloudFront와 연동하면 됩니다.

2. **CloudFront 배포 생성**: 
   - CloudFront 대시보드로 이동하고 새 배포를 생성합니다.
   - "Origin Domain Name"에 웹사이트의 오리진 주소(예: S3 버킷 URL, ELB 주소 등)를 입력합니다.
   - "Viewer Protocol Policy"를 "Redirect HTTP to HTTPS"로 설정하여 HTTPS만을 사용하도록 강제합니다.
   - "SSL Certificate" 섹션에서 "Custom SSL Certificate"를 선택하고 앞서 ACM에서 생성한 인증서를 선택합니다.
   - 다른 설정을 필요에 따라 구성한 후 배포를 생성합니다.

3. **Route 53에서 호스티드 존 생성**: 
   - Route 53 대시보드로 이동하여 `example.com`을 위한 새 호스티드 존을 생성합니다.

4. **Route 53에서 CNAME 레코드 생성**:
   - Route 53 호스티드 존 내에서 새 레코드 세트를 생성합니다.
   - 레코드의 이름을 `www.example.com`으로 설정합니다.
   - 유형은 `CNAME`을 선택하고, 값은 CloudFront 배포의 도메인 이름(URL)을 입력합니다.

5. **도메인 제공자에서 Name Server 업데이트**: 
   - Route 53에서 `example.com` 호스티드 존의 NS 레코드를 확인합니다.
   - 구글 도메인의 DNS 설정 페이지에서 Route 53에서 제공받은 Name Server(NS) 값을 입력합니다.

이렇게 설정하면 `www.example.com`을 사용하여 CloudFront 배포에 접근할 수 있습니다. ACM에서 "Create DNS records in Amazon Route 53"를 사용하는 경우, 일반적으로 Route 53과의 연동 문제가 발생하지 않아야 합니다. 하지만 직접 입력하는 경우 오타나 다른 설정 문제가 발생할 수 있으니 세심한 주의가 필요합니다.

중요한건 작업의 흐름이다 세세한 방법은 그때그때 변경되니 키워드를 남긴다는 느낌으로 공유합니다.

profile
하기로 했으면 하자

0개의 댓글