Amazon S3 정적 웹 사이트 용 HTTPS [닫힘]


90

Amazon S3 및 CloudFront를 사용하여 HTTPS 전용 정적 웹 사이트를 호스팅하고 싶습니다. 지금까지 내가 한 작업은 다음과 같습니다.

  1. 정적 웹 사이트 호스팅을위한 S3 버킷을 설정하고 여기에 웹 사이트 파일을 넣습니다.
  2. CloudFront 배포를 생성하고 S3 버킷을 가리킴
  3. wwwCloudFront 버킷을 가리키는 하위 도메인에 대한 내 도메인의 이름 서버에 CNAME 레코드를 추가했습니다 .

지금까지 매우 좋았습니다 www.example.com. 주소를 사용하여 내 웹 사이트에 액세스 할 수 있습니다 . 하지만 GoDaddy에서 SSL 인증서를 구입 한 HTTPS를 통해서만 사이트를 사용할 수 있기를 원합니다.

이제 질문은 다음과 같습니다.

  1. S3 호스팅 웹 사이트에이 타사 SSL 인증서를 설치하는 방법이 있습니까?
  2. 이 설정으로 자동 http에서 https로 리디렉션하는 방법이 있습니까?

1
무료로 할 수 있습니까?
Piyush S. Wanare 2011

Amazon에서 무료로 SSL 인증서를받을 수 있으며 자동으로 갱신됩니다. aws.amazon.com/certificate-manager 달러 기호 아이콘까지 아래로 스크롤합니다.)
Costa

1
이 질문은 프로그래밍을 다루지 않기 때문에 주제에서 벗어난 질문으로 종결 할 것입니다
Zach Saucier

1
질문을 ServerFault로 옮기지 않는 이유는 무엇입니까?
nu everest

@nueverest 마이그레이션하기에 너무 오래 되었기 때문입니다.
gre_gor nov.

답변:


63

예, 오늘부터 무료로 할 수 있습니다.

이제 SNI (Server Name Indication)를 사용하는 사용자 지정 SSL 인증서를 지원하므로 CloudFront에서 CNAME과 함께 HTTPS를 사용할 수 있습니다. http://aws.typepad.com/aws/2014/03/server-name-indication-sni-and- http-redirection-for-amazon-cloudfront.html

큰 문제없이 S3의 CloudFront 분산 정적 사이트에 대해 무료 클래스 1 StartSSL 인증서를 설정했습니다 (참조 : SNI를 사용하여 HTTPS를 통해 제공 할 때 CloudFront 오류 ).


7
자세한 안내 : bryce.fisher-fleig.org/blog/...
elado

3
피드백 : 브라이스 피셔의 가이드는 매우 좋았습니다.
tresf

6
여기에 미묘함이 있습니다. 웹 사이트 호스팅 용으로 구성되지 않은 경우 S3 버킷에 대해 HTTPS를 사용할 수 있습니다 . "웹 사이트 엔드 포인트는 https를 지원하지 않습니다."라는 메모를 참조하십시오.
skeller88

6
좋아요, "미묘함"을 넘어서 평범한 영어로 설명하기 위해 여기에 제 사진이 있습니다. 정적 웹 페이지 콘텐츠 (html)가 포함 된 S3 버킷은 몇 번의 클릭만으로 웹 사이트로 전환 할 수 있습니다. 이 웹 사이트는 http 만 사용할 수 있습니다. https를 원하면 AWS의 Cloudfront 서비스를 사용하고 SNI가 https를 무료로받을 수 있도록 구성해야합니다. (몇몇 아주 오래되었거나 특이한 브라우저는 SNI를 지원하지 않습니다.) html 및 기타 리소스는 저렴한 비용으로 S3에 저장할 수 있습니다. 또한 AWS에서 도메인 이름을 얻은 경우 Elastic Load Balance 서비스를 사용해야합니다. 수수료는 공연 당 몇 센트입니다.
Mike_Laird 2016-08-04

5
이 답변이 정답을 받았다는 사실이 놀랍습니다. @ skeller88이 언급했듯이 s3 https는 웹 사이트 호스팅에서 작동하지 않습니다.
abbood

36

2016 년 1 월 21 일에 AWS는 Elastic Load Balancer 및 Cloud Front (S3와 함께)에서 사용할 SSL 인증서를 발급 할 수 있는 무료 서비스 인 AWS Certificate Manager를 출시했습니다 .

https://aws.amazon.com/certificate-manager/ 에서 자세히 알아볼 수 있습니다.

또한 AWS의 무료 SSL을 사용하여 S3 + Cloudfront 웹 사이트를 배포하는 방법은 https://aws.amazon.com/blogs/aws/new-aws-certificate-manager-deploy-ssltls-based-apps-on 에서 확인할 수 있습니다. -aws /


1
나는 오늘 아침에 내 사이트에 이것을 설정했습니다. s3에서 호스팅되는 정적 사이트입니다. 그것은이었다 매우 편리합니다. 간단히 acm 관리자에게 가서 인증서를 요청하고 내 이메일 설정을 몇 시간 동안 처리 한 다음 (확인 이메일을 기다리는 동안 내 WHOIS 정보를 공개하게 됨) cloudfront 엔드 포인트를 가리 키도록 route53을 설정했습니다. . 이 댓글을 발견하면 매우 기쁩니다.
편집증 환자

1
@paranoid 이것으로 s3 웹 사이트를 https 전용으로 호스팅 할 수 있습니까?
Piyush S. Wanare 2011

1
@ PiyushS.Wanare 예, 할 수 있습니다!
barbolo

Route53의 CNAME 레코드에 HTTPS 링크를 넣습니다.
Costa

@paranoid "cloudfront endpoint"가 무슨 뜻인지 잘 모르겠습니다 .. 해당 정보는 어디서 얻습니까?
abbood

17

오늘부터 Cloudfront는 사용자 지정 SSL을 제공합니다. http://aws.amazon.com/cloudfront/pricing/

명심하십시오, 그들은 $ 600 / 월을 청구합니다. 위 링크에 대한 자세한 내용.


7
600 / 월 ......
Pacerier 2013-08-13

11
전용 IP 주소를 원하면 600 달러 만 지불하면됩니다. 당신이 (이전 버전의 브라우저에서 지원되지 않습니다) SNI를 사용하는 것이 행복 경우, 별도의 요금이 적용되지 않습니다
마틴 OConnor

2
최신 브라우저 만 지원하려는 경우 (SNI를 통해) 훨씬 저렴합니다. aws.amazon.com/about-aws/whats-new/2014/03/05/…
Andrew Newdigate

이것은 지금 무료입니다! aws.amazon.com/certificate-manager 달러 기호 아이콘까지 아래로 스크롤합니다. 또한 자동으로 갱신되는 것 같습니다. 인증서에 원하는 도메인을 입력하고 다음 이메일의 유효성 검사 링크를 클릭하면 설정이 간단합니다.
Costa

3

저에게는 간단한 React 웹 사이트를 S3에 업로드해야했습니다. Barbolo가 설명했듯이 SSL을 통해 사이트에 액세스하려면 인증서가 필요합니다. 배포하려는 정적 사이트가 충분히 간단한 경우 다음을 수행 할 수 있습니다.

  1. S3에 업로드합니다.
  2. 되지 선택 "정적 웹 사이트 호스팅"
  3. 모든 상대 링크 (css, js 등)를 절대 링크로 변환합니다.

예를 들어 /css/media.css에서 https://s3-region-amazonaws.com/bucket-name/css/media.css 로 변환해야합니다 (저는 index.html의 링크 만 변경해야했습니다).

  1. 버킷의 콘텐츠 만 공개합니다.

그게 다야. https를 통해 색인 파일에 액세스 할 수 있습니다.

단순 사이트는 일부 css 및 js 페이지를 가리키는 기본 index.html 파일이있는 사이트입니다.


대박. 감사합니다
user1874634

앱이 프로덕션을 대상으로하는 경우 이것은 나쁜 생각입니다.
Sébastien

sébastien이 왜 이것이 나쁜 생각인지 더 자세히 알려주십시오. 버킷이 아닌 객체에 대한 공개 읽기 액세스 권한을 부여합니다.
alexopoulos7

가장 좋고 간단한 방법이지만 응용 프로그램의 모든 단일 파일에 대해 요청이 인터넷으로 이동하여 응용 프로그램의 성능이 저하된다는 점을 기억하십시오. 이 시나리오에서는 CloudFront를 사용하는 것이 가장 좋습니다.
Nitesh B.

@ NiteshB.CloudFront는 S3 객체를 자주 업데이트해야 할 때 골칫거리입니다
Dustin Sun

0

@wikichen의 답변 외에도.

출처 : https://aws.amazon.com/cloudfront/custom-ssl-domains/

기본적으로 URL에 CloudFront 배포 도메인 이름 (예 : https://dxxxxx.cloudfront.net/image.jpg) 을 사용하여 HTTPS를 통해 최종 사용자에게 콘텐츠를 전송할 수 있습니다 .

자체 도메인 이름과 자체 SSL 인증서를 사용하여 HTTPS를 통해 콘텐츠를 제공하려는 경우 사용자 지정 SSL 인증서 지원 기능 중 하나를 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.