Amazon S3 için HTTPS statik web sitesi [kapalı]


90

Amazon S3 ve CloudFront kullanarak yalnızca HTTPS içeren statik bir web sitesi barındırmak istiyorum. İşte şimdiye kadar yaptıklarım:

  1. Statik web sitesi barındırma için bir S3 demeti kur ve web sitesi dosyalarımı içine koy
  2. Bir CloudFront dağıtımı oluşturdu ve onu S3 klasörüne yönlendirdi
  3. wwwCloudFront paketini işaret eden alt alan adı için alanımın ad sunucularına bir CNAME kaydı eklendi .

Şimdiye kadar çok iyi - web siteme www.example.comadresi kullanarak erişebiliyorum . Ancak sitenin yalnızca HTTPS üzerinden kullanılabilmesini istiyorum, bunun için GoDaddy'den bir SSL sertifikası satın aldım.

Şimdi soru şu:

  1. Bu üçüncü taraf SSL sertifikasını S3'te barındırılan web siteme yüklemenin bir yolu var mı?
  2. Bu kurulumla otomatik bir http'den https'ye yönlendirmeye sahip olmanın bir yolu var mı?

1
Ücretsiz olarak yapabilir miyim?
Piyush S. Wanare

Amazon'dan ücretsiz olarak SSL sertifikası alabilirsiniz ve otomatik olarak yenilenir. aws.amazon.com/certificate-manager Dolar işareti simgesine kaydırın :)
Costa

1
Programlama ile ilgili olmadığı için bu soruyu konu dışı olarak kapatmak için oy kullanıyorum
Zach Saucier

1
Soruyu neden ServerFault'a taşımıyorsunuz?
nu everest

@nueverest Çünkü taşınamayacak kadar eski.
gre_gor

Yanıtlar:


63

Evet, bugün itibariyle ücretsiz yapabilirsiniz.

Artık Sunucu Adı Göstergesi'ni (SNI) kullanarak özel SSL sertifikalarını desteklediği için CloudFront'ta CNAME'ler ile HTTPS kullanabilirsiniz: http://aws.typepad.com/aws/2014/03/server-name-indication-sni-and- http-redirection-for-amazon-cloudfront.html

S3'te çok fazla sorun yaşamadan CloudFront dağıtılmış statik sitem için ücretsiz bir Sınıf 1 StartSSL sertifikası kurmayı başardım (bkz: SNI kullanarak HTTPS üzerinden hizmet verirken CloudFront hatası ).


7
Ayrıntılı rehber: bryce.fisher-fleig.org/blog/…
elado

3
Geri bildirim: Bryan Fisher'ın rehberi çok iyiydi.
tresf

6
Burada bir incelik var. Web sitesi barındırma için yapılandırılmamışsa, bir S3 klasörü için HTTPS'ye sahip olabilirsiniz . "Web sitesi uç noktaları https'yi desteklemiyor" yazan Nota bakın.
skeller88

6
Tamam, "incelik" i aşmak ve sade bir İngilizce ile anlatmak için işte benim şansım. Statik web sayfası içeriğine (html) sahip bir S3 paketi, birkaç tıklama ile bir web sitesine dönüştürülebilir. Bu web sitesi yalnızca http kullanabilir. Https istiyorsanız, AWS'nin Cloudfront hizmetini kullanmanız ve https'yi ücretsiz olarak almak için SNI için yapılandırmanız gerekir. (Çok eski veya tuhaf birkaç tarayıcı, SNI'yi desteklemez.) HTML ve diğer kaynaklar, düşük bir maliyetle S3'te depolanabilir. Ek olarak, alan adını AWS'den alırsanız, onların Elastic Load Balance hizmetini kullanmanız gerekir. Ücretler iş başına birkaç senttir.
Mike_Laird

5
Soruyu yanıtlamadığında, bu cevabın doğru cevabı almasını şaşırtıcı buluyorum: @ skeller88 tarafından belirtildiği gibi, s3 https web sitesi barındırma için çalışmıyor.
abbood

36

2016-01-21'de AWS , Elastic Load Balancer ve Cloud Front (S3 ile birlikte) ile kullanılmak üzere bir SSL sertifikası vermenizi sağlayan ücretsiz bir hizmet olan AWS Certificate Manager'ı piyasaya sürdü .

Şu adresten daha fazla bilgi edinebilirsiniz: https://aws.amazon.com/certificate-manager/

Ayrıca S3 + Cloudfront web sitenizi AWS'den ücretsiz SSL ile şu adresten nasıl dağıtacağınızı kontrol edebilirsiniz: https://aws.amazon.com/blogs/aws/new-aws-certificate-manager-deploy-ssltls-based-apps-on -aws /


1
Bunu sitem için bu sabah kurdum. S3'te barındırılan statik bir sitedir. Öyleydi süper kolay. Sadece acm yöneticisine gittim, bir sertifika istedim, birkaç saat boyunca e-posta ayarlarımla uğraştım (onay e-postasını beklerken WHOIS bilgilerimi herkese açık hale getirdim) ve ardından rota53'ü bulut önü uç noktasını gösterecek şekilde ayarladım . Bu yorumu bulduğuma çok sevindim.
paranoid

1
@paranoid Bununla s3 web sitemi yalnızca https olarak barındırabilir miyim?
Piyush S. Wanare

1
@ PiyushS.Wanare evet, yapabilirsiniz!
barbolo

HTTPS bağlantısını Route53'teki CNAME kaydına yerleştirin.
Costa

@paranoid "cloudfront endpoint" ile ne demek istediğinizden emin değilim .. bu bilgiyi nereden alabilirim?
abbood

17

Cloudfront bugün itibariyle özel SSL sunmaktadır: http://aws.amazon.com/cloudfront/pricing/

Unutmayın, ayda 600 $ talep ediyorlar. Yukarıdaki bağlantıyla ilgili daha fazla ayrıntı.


7
600 / ay ......
Pacerier

11
Özel bir IP adresi istiyorsanız yalnızca 600 $ ödersiniz. SNI (eski tarayıcılar tarafından desteklenmeyen) kullanmaktan memnunsanız, ekstra ücret alınmaz
Martin OConnor

2
Yalnızca modern tarayıcıları (SNI aracılığıyla) desteklemek istiyorsanız, bu artık çok daha ucuz: aws.amazon.com/about-aws/whats-new/2014/03/05/…
Andrew Newdigate

Bu artık ÜCRETSİZ! aws.amazon.com/certificate-manager Dolar işareti simgesine ilerleyin. Ayrıca otomatik olarak yenilendiklerini düşünüyorum. Ve kurulum, sertifikada istediğiniz alan adlarını girmek ve aşağıdaki e-postadaki doğrulama bağlantısını tıklamak kadar kolaydır.
Costa

3

Benim için S3'e basit bir React web sitesi yüklemem gerekiyordu. Barbolo'nun açıkladığı gibi, siteye SSL üzerinden erişmek için bir sertifikaya ihtiyacınız var. Dağıtmak istediğiniz statik site yeterince basitse şunları yapabilirsiniz:

  1. S3'e yükleyin.
  2. Do not select "Statik Web Sitesi Barındırma"
  3. Tüm göreli bağlantıları (css, js, vb.) Mutlak bağlantılara dönüştürün.

örneğin /css/media.css'den https://s3-region-amazonaws.com/bucket-name/css/media.css'ye dönüştürmelisiniz (benim için yalnızca index.html'deki bağlantıları değiştirmem gerekiyordu)

  1. Yalnızca paketin içeriğini herkese açık hale getirin.

Bu kadar. İndeks dosyasına https üzerinden erişebilirsiniz.

Basit site, bazı css ve js sayfalarına işaret eden ana index.html dosyasına sahip bir sitedir.


Harika. Teşekkürler
user1874634

Uygulamanız üretimi hedefliyorsa, bu kötü bir fikirdir.
Sébastien

sébastien lütfen bunun neden kötü bir fikir olduğunu bizimle paylaşın. Pakete değil nesnelere genel okuma erişimi veriyoruz.
alexopoulos7

Bu iyi ve en basit yol, ancak unutmayın, uygulamanızdaki her dosya için istek internette dolaşacak ve bu da uygulamanızın performansını düşürecektir. CloudFront'u kullanmak, bu senaryolarda en iyi fikirdir.
Nitesh B.

@ NiteshB.CloudFront, S3 nesnelerinizi sık sık güncellemeniz gerektiğinde başınızı ağrıtabilir
Dustin Sun

0

@ Wikichen'in cevabına ek olarak.

Gönderen: https://aws.amazon.com/cloudfront/custom-ssl-domains/

Varsayılan olarak, https://dxxxxx.cloudfront.net/image.jpg gibi URL'lerinizdeki CloudFront dağıtım alan adınızı kullanarak içeriğinizi izleyicilere HTTPS üzerinden sunabilirsiniz .

İçeriğinizi HTTPS üzerinden kendi alan adınızı ve kendi SSL sertifikanızı kullanarak göndermek istiyorsanız, Özel SSL sertifikası destek özelliklerimizden birini kullanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.