Como configurar o SSL para o Amazon S3 bucket

Respostas:

151

Você pode acessar seus arquivos via SSL assim:

https://s3.amazonaws.com/bucket_name/images/logo.gif

Se você usar um domínio personalizado para o seu bucket, poderá usar o S3 e o CloudFront junto com seu próprio certificado SSL (ou gerar um grátis através do Amazon Certificate Manager): http://aws.amazon.com/cloudfront/custom-ssl- domínios /

reach4thelasers
fonte
42
Isso não é inteiramente verdade. Você pode usar nomes de buckets sem pontos: this-is-my-awesome-bucket.s3.amazonaws.com A Amazon possui um certificado curinga. Como você não pode usar pontos, não pode ter um domínio CNAME apontando para seu bloco.
Docunext
4
cuidado com os nomes dos grupos que contêm períodos! o SSL não funcionará em dispositivos iOS, mas funcionará bem no Chrome. Veja stackoverflow.com/questions/3048236/…
Simon_Weaver
1
O Amazon CloudFront fará isso por você.
285 Greg Greg
3
Para ter nomes de buckets de notação de ponto (para que você possa usar o alias do Route 53) e deseja colocar objetos via REST, verifique se o nome do host corresponde à região. Por exemplo, meu bucket está dentro, us-west-2então o nome do host é realmente o s3-us-west-2.amazonaws.comcontrário, você recebe um erro.
noetix 9/06/16
1
sem cloudfront, podemos conseguir isso?
Arun Kumar
28

Certificados SSL de domínio personalizado foram adicionados hoje por US $ 600 / cert / mês. Inscreva-se para o seu convite abaixo: http://aws.amazon.com/cloudfront/custom-ssl-domains/

Atualização : os certificados fornecidos pelo cliente SNI estão agora disponíveis sem custo adicional. Muito mais barato que US $ 600 / mês, e com o XP quase extinto, deve funcionar bem na maioria dos casos de uso.

@skalee A AWS possui um mecanismo para alcançar o que o pôster pede, "implementar SSL para um bucket do Amazon s3", é chamado CloudFront. Estou lendo "implementar" como "usar meus certificados SSL", não "apenas colocar um S na URL HTTP que eu tenho certeza que o OP poderia ter imaginado.

Como o CloudFront custa exatamente o mesmo que o S3 (US $ 0,12 / GB), mas possui vários recursos adicionais em torno do SSL E permite adicionar seu próprio certificado SNI sem nenhum custo adicional, é a correção óbvia para "implementar o SSL" em seu domínio.

Joseph Lust
fonte
64
O CloudFront não é S3.
Skalee
6
@skalee Correto, mas se você deseja acessá-lo através de um domínio com certificados SSL personalizados, conforme o OP solicita, você pode configurar certificados SSL CNAME personalizados dessa maneira e acessá-los através do CF.
Joseph Lust
2
Por enquanto, eu configurei dois CNAMEs: static-s3 e static-cf, o primeiro apontando diretamente para o meu S3, o segundo para o CF. O primeiro não suporta SSL, o segundo pode, mas é CF e não S3, como o skalee aponta. Acho que é o melhor que podemos fazer a partir de agora.
Perigo
2
WOW Acho que eles precisam compensar os custos de armazenamento cada vez mais baratos. pelo menos é rateado embora. se você usar seu certificado SSL apenas por 1 hora em um mês,
serão
1
@ Elegant.Scripting se você possui um certificado SSL dedicado (não um certificado SNI), essa máquina precisa de um IP dedicado que acarreta custos. presumivelmente, é necessário um IP dedicado para todos os locais do mundo em que o S3 está hospedando seus dados. Então isso se soma. Mas acho que é principalmente porque as pessoas que postam não precisam e podem aumentar o preço para quem precisa. Se você não precisar oferecer suporte ao IE6, deverá receber o certificado SNI no CloudFront.
21416 Simon_Weaver
3

Se você realmente precisar, considere os redirecionamentos.

Por exemplo, a pedido, assets.my-domain.example.com/path/to/filevocê pode executar um redirecionamento 301 ou 302 para my-bucket-name.s3.amazonaws.com/path/to/fileou s3.amazonaws.com/my-bucket-name/path/to/file(lembre-se de que, no primeiro caso, my-bucket-namenão pode conter nenhum ponto, caso contrário, ele não corresponderá)*.s3.amazonaws.com, s3.amazonaws.com declarado no certificado S3).

Não testado, mas acredito que funcionaria. Eu vejo algumas dicas, no entanto.

O primeiro é bastante óbvio, uma solicitação adicional para obter esse redirecionamento. E duvido que você possa usar o servidor de redirecionamento fornecido pelo seu registrador de nomes de domínio - você teria que fazer o upload do certificado adequado de alguma forma -, então você precisa usar seu próprio servidor para isso.

O segundo é que você pode ter URLs com o seu nome de domínio no código-fonte da página, mas quando, por exemplo, o usuário abre a foto em uma guia separada, a barra de endereço exibe o URL de destino.

skalee
fonte
2
Não tenho certeza, mas acho que isso pode causar problemas de CORS.
Xdhmoore 01/03/19
3

Não é possível diretamente com o S3, mas você pode criar uma distribuição do Cloud Front a partir do seu bucket. Em seguida, vá ao gerenciador de certificados e solicite um certificado. A Amazon os oferece gratuitamente. Depois de confirmar a certificação, atribua-a à sua distribuição do Cloud Front. Lembre-se também de definir a regra para redirecionar o http para https.

Estou hospedando alguns sites estáticos no Amazon S3, como meu site pessoal ao qual atribuí o certificado SSL, pois eles têm a distribuição do Cloud Front.

Mika Kujapelto
fonte
e como você atribuiu o nome de domínio?
netshark1000
Primeiro, vá ao gerenciador de certificados e solicite um novo certificado. Adicione seu domínio e inclua subdomínios, se necessário. Não dói nada colocar subdomínios lá, então é melhor colocar example.com e * .example.com lá.
Mika Kujapelto
0

Como mencionado anteriormente, você não pode criar certificados gratuitos para buckets S3. No entanto, você pode criar a distribuição do Cloud Front e atribuir o certificado para o Cloud Front. Você solicita o certificado para o seu domínio e atribui-o apenas à distribuição do Cloud Front nas configurações do Cloud Front. Eu usei esse método para veicular sites estáticos via SSL e também para arquivos estáticos.

Para a criação de sites estáticos, a Amazon é o lugar certo. É realmente acessível obter um site estático com SSL.

Mika Kujapelto
fonte
2
Para todos que chegam aqui usando o google: lembre-se de criar seu certificado da AWS (também) na região da Virgínia do Norte. Caso contrário, você não poderá selecioná-lo na sua distribuição de CF.
KLoozen