Existe uma maneira de usar HTTPS com o CloudFront CDN e CNAMEs da Amazon?

16

Usamos o CloudFront CDN da Amazon com CNAMEs personalizados pendurados no domínio principal (static1.example.com). Embora possamos quebrar essa aparência uniforme e usar os URLs originais what123wigglyw00.cloudfront.net para utilizar HTTPS, existe outra maneira?

A Amazon ou qualquer outro provedor similar oferece hospedagem HTTPS CDN?

O TLS e sua criptografia seletiva estão disponíveis para uso em algum lugar (SNI: Server Name Indication)?

Nota de rodapé: supondo que a resposta seja não, mas apenas na esperança de que alguém saiba.

EDIT : agora usando o Google App Engine https://developers.google.com/appengine/docs/ssl para hospedagem de CDN com suporte a SSL.

Metalshark
fonte

Respostas:

18

O CloudFront com CNAMEs e HTTPS não é suportado. Consulte a primeira nota na documentação do CloudFront CNAME .

Eu não acho que nenhuma das CDNs de baixo custo tenha suporte para CNAMEs e HTTPS juntas, para isso, elas teriam que ter alguma maneira de fazer upload do seu certificado não criptografado na rede CDN.

carson
fonte
2
Ou corretor da mesma maneira que o Google oferece configuração de DNS com o Google Apps e o eNom / GoDaddy. Há esperança no futuro com en.wikipedia.org/wiki/Server_Name_Indication. Gostaria de saber se algum provedor já começou a testar essa capacidade ainda.
Metalshark
1
Nota em 2016: esta resposta está desatualizada, consulte a resposta de John Mark Mitchell abaixo.
Benjamin
16

ATENÇÃO OS EDITOS E ATUALIZAÇÕES ABAIXO

No momento em que escrevi isso (23 de maio de 2012), o SSL é suportado pelo URL de distribuição do CloudFront só. Ou seja, você não pode CNAME o URL SSL. Concretamente, você pode fazer referência a um item via SSL como:

https://[distribution].cloudfront.net/picture.jpg

mas não:

https://cdn.mydomain.com/picture.jpg

onde cdn.mydomain.com é um CNAME para [distribuição] .cloudfront.net. No momento, você receberá erros de SSL.

Isso significa que você não pode usar seu nome de domínio ou certificado SSL. Isso pode causar problemas com políticas de vários domínios no navegador, além de adicionar complexidade à manutenção de um site.

A equipe da AWS me garantiu que o suporte HTTPS para CNAMEs de distribuição está em sua lista de recursos, mas que precisa de suporte da comunidade para priorização. Para ajudar nesse esforço, preencha a pesquisa do CloudFront (veja abaixo) e observe esta solicitação de recurso. A equipe da AWS usa os dados coletados da pesquisa para planejar e priorizar o roteiro do CloudFront.

Observe que o suporte a HTTPS CNAME é necessário quando você faz a pesquisa no CloudFront: http://aws.qualtrics.com/SE/?SID=SV_9yvAN5PK8abJIFK

EDIT: notou uma postagem de 11 de junho de 2012 que a AWS havia atualizado o link da pesquisa:

Novo link da pesquisa: http://aws.qualtrics.com/SE/?SID=SV_e4eM1cRblPaccFS

Acho que vale a pena fornecer feedback sobre como tornar o CNAME + SSL um recurso suportado.

EDIT: anunciado em 11 de junho de 2013, Certs SSL personalizados com IPs dedicados agora são suportados com o CloudFront na AWS:

Veja o anúncio do recurso no blog da AWS: http://aws.typepad.com/aws/2013/06/custom-ssl-domain-names-root-domain-hosting-for-amazon-cloudfront.html

Um item a ser considerado antes de contar com essa rota, você precisa ver um valor significativo ao desviar-se da rota https: // [distribution] .cloudfront.net , pois o preço é de US $ 600 por mês para hospedagem de certificados SSL personalizados.

EDIT: anunciado em 5 de março de 2014, os certificados SSL personalizados usando SNI (Server Name Indication) agora são suportados pelo CloudFront na AWS - SEM TAXA ADICIONAL:

A AWS agora oferece suporte a certificados SSL personalizados via SNI. Isso é ENORME, pois abre a possibilidade de aproveitar a infraestrutura existente da AWS (endereços IP). Como tal, a AWS não cobra nenhum custo extra por este serviço! Para saber mais, leia sobre isso na postagem do blog da AWS: http://aws.typepad.com/aws/2014/03/server-name-indication-sni-and-http-redirection-for-amazon-cloudfront.html

Um item que deve ser observado, porém, Server Name Indication (SNI) tem algumas desvantagens que devem ser consideradas antes de se confiar completamente nele. Em particular, ele não é suportado por alguns navegadores mais antigos. Se quiser entender melhor isso, consulte: /programming/5154596/is-ssl-sni-actually-used-and-supported-in-browsers

EDIT: A AWS anunciou em 21 de janeiro de 2016 que fornecerá certificados SSL personalizados GRATUITAMENTE!

Para ler sobre o anúncio completo no site da AWS: https://aws.amazon.com/blogs/aws/new-aws-certificate-manager-deploy-ssltls-based-apps-on-aws/

A Amazon anunciou um novo serviço chamado AWS Certificate Manager, oferecendo certificados SSL / TLS gratuitos para recursos da AWS.

Esses certificados geralmente são adquiridos de fornecedores terceirizados como Symantec, Comodo e RapidSSL e podem custar de US $ 50 a centenas de dólares, dependendo do nível de verificação de identidade realizada.

O processo de obtenção de um novo certificado sempre foi um pouco confuso, exigindo a geração de uma Solicitação de Assinatura de Certificado no servidor que está sendo protegido, enviando essa solicitação a um provedor de certificados e instalando o certificado após o recebimento. Como a Amazon está gerenciando todo o processo, tudo isso desaparece e os certificados podem ser emitidos e provisionados rapidamente nos recursos da AWS automaticamente.

Existem algumas limitações para os certificados. A Amazon fornece apenas certificados validados por domínio, uma verificação simples em que a validação do domínio ocorre por email. Se você deseja um certificado de Validação Estendida, pode ficar com seus fornecedores de certificados atuais. Além disso, os certificados não podem ser usados ​​para assinatura de código ou criptografia de email.

John Mark Mitchell
fonte
3
developers.google.com/appengine/docs/ssl documenta isso. Após 2 anos tentando fazer com que a AWS suporte o recurso, é oferecido um voto a ele quando um concorrente já lançou o recurso, é tarde demais.
Metalshark
Vamos lá, concordo com a @Metalshark e com todos neste tópico. Acabei de preencher o absurdamente longo formulário de feedback do AWS Cloudfront para defender o CNAME-HTTPS, mas se o Google App Engine o oferecer e essa pergunta tiver 2 anos, você deverá fazer algo o mais rápido possível!
tim Peterson
Não vejo nada na página do Google App Engine sobre CDNs. A AWS já oferece suporte SSL gratuito para todo o resto, mas o suporte à CDN é mais difícil. Não me cite, mas suspeito que seja porque há vários endereços IP envolvidos.
Rupert Rawnsley
Obrigado por manter esta resposta atualizada, John. Acabei de excluir um monte de comentários desatualizados que foram incorporados à resposta. Provavelmente seria mais fácil ler a resposta se você apenas excluísse as informações desatualizadas em vez de usar o strikeout. O histórico completo de revisões da sua resposta está disponível clicando no link que mostra quando você editou a resposta pela última vez.
Stephen Ostermiller