Amazon S3 - HTTPS / SSL - é possível? [fechadas]

177

Vi algumas outras perguntas sobre isso sem respostas ou informações reais (ou pelo menos parece).

Eu tenho uma imagem aqui:
http://furniture.retailcatalog.us/products/2061/6262u9665.jpg

Que está redirecionando para:
http://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

Eu preciso que seja (https):
https://furniture.retailcatalog.us/products/2061/6262u9665.jpg

Portanto, instalei um curinga ssl no retailcatalog.us (temos outros subdomínios), mas ele não estava funcionando. Fui verificar
https://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

E não estava funcionando, o que significa que no site da Amazon S3 o https não estava funcionando.

Como eu faço isso funcionar?

Kerry Jones
fonte
Sua pergunta não explica exatamente o que você quer fazer. Deseja fazer solicitações HTTP redirecionadas para https? Nesse caso, você deve reformular o título da pergunta para melhor explicar esse fato. Isso ajudará mais pessoas a encontrar e responder a essa pergunta.
A. Levy
Não, quero acessar a imagem com segurança. Isso é possível?
Kerry Jones
Essa última URL funciona para mim, embora ele vem com um erro de certificado que é provável um problema para você
Michael Haren
Sim, isso é um problema. Para mim, me impede de vê-lo em primeiro lugar e tenho que verificar o certificado manualmente para vê-lo.
Kerry Jones
1
apenas alguns anos atrasado para o jogo, mas o cnl ssl funciona com o cloudfront. exemplo cdn.example.com aponta para randomstring.cloudfront.net, que aponta para o seu bucket s3. https: // cdn.example.com exibirá conteúdo sem erros, mas você receberá um aviso de certificação se tentar navegar diretamente no URL.
Neil McGuigan

Respostas:

182

Esta é uma resposta que recebi de seus Serviços Premium

Olá,

Na verdade, esse é um problema com a maneira como o SSL valida nomes contendo um caractere de ponto, '.',>. Documentamos esse comportamento aqui:

http://docs.amazonwebservices.com/AmazonS3/latest/dev/BucketRestrictions.html

A única correção direta para isso é usar um nome de bloco que não contenha esse caractere. Você pode usar um balde chamado 'furniture-retailcatalog-us'. Isso permitiria usar HTTPS com

https://furniture-retailcatalog-us.s3.amazonaws.com/

Obviamente, você pode colocar um registro DNS CNAME para torná-lo mais amigável. Por exemplo,

images-furniture.retailcatalog.us EM CNAME furniture-retailcatalog-us.s3.amazonaws.com.

Espero que ajude. Informe-nos se você tiver outras perguntas.

Amazon Web Services

Infelizmente, o CNAME "amigável" causará incompatibilidade de nome de host ao validar o certificado; portanto, você não pode realmente usá-lo para uma conexão segura. Um grande recurso ausente do S3 é aceitar certificados personalizados para seus domínios.


ATUALIZAÇÃO 10/2/2012

From @mpoisot:

O link fornecido pela Amazon não diz mais nada sobre https. Eu dei uma olhada nos documentos do S3 e finalmente encontrei uma pequena nota sobre isso na página Hospedagem virtual: http://docs.amazonwebservices.com/AmazonS3/latest/dev/VirtualHosting.html


ATUALIZAÇÃO 17/6/2013

Desde @Joseph Lust:

Apenas entendi! Confira e inscreva-se para um convite: http://aws.amazon.com/cloudfront/custom-ssl-domains

Kerry Jones
fonte
22
+1 para acompanhar sua pergunta conquistada - informações muito úteis facilmente ignoradas na documentação do S3!
Steffen Opel
1
O link fornecido pela Amazon não diz mais nada sobre https. Eu remexia nos docs S3 e finalmente encontrei uma pequena nota sobre o assunto na página de Virtual Hosting: docs.amazonwebservices.com/AmazonS3/latest/dev/...
mpoisot
4
Observe que custa US $ 600 por mês. : -o
loneboat 14/10
8
Agora é possível usar seu próprio certificado SSL para Cloudfront sem custos adicionais . Portanto, a cobrança de 600 $ / m se foi.
schickling
4
@schickling Também vale a pena notar que o CloudFront fez essa alteração ao permitir escolher entre SNI ou SSL IP dedicado . O SSL IP dedicado continua a custar US $ 600, mas o SNI SSL é gratuito. Apenas verifique se os navegadores direcionados oferecem suporte ao SNI.
Ryan Pendleton
111

Eu sei que é um ano após o fato, mas usando isso resolve: https://s3.amazonaws.com/furniture.retailcatalog.us/products/2061/6262u9665.jpg

Vi isso em outro site ( http://joonhachu.blogspot.com/2010/09/helpful-tip-for-amazon-s3-urls-for-ssl.html ).

payton109
fonte
18
realmente não parece resolver isso. Ele ainda usa o nome de domínio amazon (s3.amazonaws.com), por isso é péssimo!
themihai
14
Isso não é ruim. Sim, o domínio é diferente, mas permite veicular conteúdo sobre SSL em um bucket existente no S3. Sem esse esquema, é necessário criar um intervalo apenas para os arquivos veiculados por SSL (porque o certificado SSL curinga S3 não corresponde a files.yourdomain.com.s3.amazonaws.com): secure-yourdomain.s3.amazonaws.com . Agora você tem dois baldes para gerenciar em vez de um. Não é grande coisa, mas em aplicativos da web, mais complexidade do que o absolutamente necessário é uma porcaria.
18712 Andrew
7
Oi, eu sou o cara que escreveu o link de referência que você colocou lá "Joonha". A pequena jóia a não perder é usar essa técnica + "//" sozinha como o início do seu protocolo. No meu negócio de desenvolvimento de comércio eletrônico, fazemos links para URLs com "//" em vez de "https: // ou" http: // ", porque nunca precisamos nos preocupar nesse momento.
Jason Sebring
4
Parece que isso não funciona mais, recebi um erro PermanentRedirect.
Paulo Casaretto
5
Veja minha nova resposta sobre por que isso funciona para algumas pessoas e outras não. Não importa que região os seus baldes estão em.
Nate
47

A resposta de payton109 está correta se você estiver na região US-EAST-1 padrão. Se o seu depósito estiver em uma região diferente, use um URL ligeiramente diferente:

https://s3-<region>.amazonaws.com/your.domain.com/some/asset

Onde <region>é o nome do local do depósito. Por exemplo, se o seu balde estiver na região us-west-2(Oregon), você pode fazer o seguinte:

https://s3-us-west-2.amazonaws.com/your.domain.com/some/asset
Nate
fonte
1
Ao usar um registro DNS CNAME, trata-se apenas da resolução do domínio; portanto, você não pode redirecionar para um URL com um caminho. Veja também: stackoverflow.com/questions/32714351/…
Sebastien Lorber 22/15
Isso funciona para mim e é a resposta mais completa.
besimple
2
Isso é bom, mas ignorando site estático hospedagem regras, como regras de redirecionamento para index.html
Kim T
Esta é a solução perfeita para desenvolvedores da Web sem uma equipe de devops ou sys-admin. Claro, seus ativos não terão um domínio elegante, mas quantos clientes inspecionam as solicitações html ou subjacentes e tsk tsk tsk no URL do domínio? Nao muitos! Obter seus ativos estáticos fora do aplicativo e entrar no S3 é um ótimo primeiro passo.
stwr667
8

Como declarado anteriormente, não é diretamente possível, mas você pode configurar o Apache ou o nginx + SSL em uma instância do EC2, CNAME o domínio desejado para isso e proxy reverso para os URLs S3 (domínio não personalizado).

Mark Wang
fonte
Uma maneira de encontrar o caminho SSL totalmente qualificado para um recurso S3 é fazer uma busca detalhada usando o console da AWS. O caminho completo é exibido na parte inferior da guia Visão geral.
eric gilbertson