AWS S3 사이트에 HTTPS 적용 방법
- S3 정적 웹 사이트 호스팅은 리다이렉트 시 https를 지원안함 
- HTTPS를 사용하려면 CloudFront 를 사용해야함
//============
* CloudFront 의 문제 
    - 파일을 지워도 한동안 계속 보임 
    - 업로드 해도 바로 반영이 안됨 
            - 게시판에 맞지 않음
- 해결책 : 일단 s3의 풀주소로 올린후, 시간이 지난다음에 CloudFront의 리다이렉트 주소로 링크를 변경하는 꼼수
     - S3의 사이트 인증 설정이 적용안됨  <-- 결정적인 문제
//====================
// 적용 방법
1) CloudFront 콘솔 
https://console.aws.amazon.com/cloudfront/home (한국어 지원안됨) 
Create Distribution 선택 
-> Web : Get Strated 버튼 
Origin Domain Name : S3 버킷 선택 
-> 일단 Create Distribution 버튼 선택 
- Alternate Domain Names (CNAMEs)은 잠시 후에 수정으로 설정 
설정후 20분 가량 걸림  
CloudFront 콘솔 
Distribution Status 상태에 In Progress 가 사라지고 Deployed로 바뀔때까지 기다린다. 
//======================= 
2) Route53 에서 CNAME 추가 
cf.example.com  (예시 도메인)
Alias = NO 
xxx.cloudfront.net 
- 이전에 S3 연결을 대체하는 것이라면 S3 주소대신 CloudFront 주소를 적는다. 
3) 인증서 생성 
- CloudFront 에서 생성한 서비스 수정 
- CloudFront Distributionst 선택 -> Edit 
- 인증서 추가 
Custom SSL Certificate (example.com): 를 선택하기 위해서는 인증서 필요 
- 인증서 관리자(Certificate Manager) 에서 이미 필요한 인증서가 생성되어 있는지 확인 https://console.aws.amazon.com/acm/home?region=us-east-1#/ 
인증서는 버지니아 북부(us-east-1) 리전에 있는것만 가능 
Request or Import a Certificate with ACM 버튼 클릭 
인증서 요청 
도메인 이름 추가  
*.example.com 으로 * (와일드 카드) 문자를 사용가능 
'이 인증서에 다른 이름 추가' 버튼을 누르면 여러 도메인을 추가할수 있다 
과정을 끝낸후 Route 53 에서 설정 버튼 
- Route 53 에 자동으로 추가됨 
인증서 관리자에서 해당 도메인의 상태가 '발급 완료'로 나올때 까지 기다림(5분?) 
4) Alternate Domain Names (CNAMEs) 추가 
- CloudFront 에서 생성한 서비스 수정 다시 시도 
Alternate Domain Names (CNAMEs) 에 cf.example.com 입력하고 맨 아래 'Yes, Edit'를 누르면 
- 에러 메시지가 나오지만, 정보가 갱신된다. 
Custom SSL Certificate (example.com): 를 체크 가능 
아래칸의 인증서 입력란 : 리스트 중 선택 하거나 인증서 ARN을 직접 적는다. 
인증서 ARN은 인증서 관리자에서 확인 가능 
https://console.aws.amazon.com/acm/home?region=us-east-1#/ 
5) CloudFront 콘솔 에서 대기 
Distribution Status 상태에 In Progress 가 사라지고 Deployed로 바뀔때까지 기다린다. (30분?)
6) 확인 
https://cf.example.com 로 접속하면 에러 발생 
S3 버킷에 파일을 업로드 하고 퍼블릭으로 설정 
해당 링크에서 도메인 부분을 설정한 도메인으로 변경해서 접속 시도 
https://cf.example.com/folder/pub.txt 
//=================== 
// 참고 
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/WebsiteHosting.html 
Amazon S3 웹사이트 엔드포인트는 HTTPS를 지원하지 않습니다 
CloudFront를 사용하여 Amazon S3 버킷에 대한 HTTPS 요청을 처리하려면 어떻게 해야 합니까? 
https://aws.amazon.com/ko/premiumsupport/knowledge-center/cloudfront-https-requests-s3/ 
//========================== 
* 한 CloudFront 에 여러 도메인 연결 방법 
- Alternate Domain Names (CNAMEs) 도메인 추가 방법 
 CloudFront 콘솔 -> Distributions 선택 -> edit 
Alternate Domain Names(CNAMEs) 의 새로운 행에 도메인 이름 추가 
Custom SSL Certificate (example.com): 아래 입력란에 인증서 ARN 직접 입력 
인증서 ARN은 인증서 관리자에서 확인 가능  
인증서는 추가한 도메인까지 인증을 포함하고 있어야 한다.