Cómo configurar SSL para el bucket de Amazon S3

Respuestas:

151

Puede acceder a sus archivos a través de SSL de esta manera:

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

Si usa un dominio personalizado para su depósito, puede usar S3 y CloudFront junto con su propio certificado SSL (o generar uno gratuito a través de Amazon Certificate Manager): http://aws.amazon.com/cloudfront/custom-ssl- dominios /

reach4thelasers
fuente
42
Eso no es del todo cierto. Puede usar nombres de depósito sin puntos: this-is-my-awesome-bucket.s3.amazonaws.com Amazon tiene un certificado comodín. Como no puede usar puntos, no puede tener un dominio CNAME apuntando a su depósito.
Docunext
44
¡cuidado con los nombres de los cubos que contienen puntos! SSL no funcionará en dispositivos iOS, pero funcionará bien en Chrome. Ver stackoverflow.com/questions/3048236/…
Simon_Weaver
1
Amazon CloudFront lo hará por usted.
Greg
3
Para tener nombres de depósito de notación de puntos (para que pueda usar el alias de la Ruta 53) y desee PONER objetos a través de REST, asegúrese de que el nombre de host coincida con la región. Por ejemplo, mi depósito está en us-west-2modo que el nombre de host es realmente, de lo s3-us-west-2.amazonaws.comcontrario, obtendrá un error.
noetix
1
sin cloudfront podemos lograr esto?
Arun Kumar
28

Los certificados SSL de dominio personalizados se agregaron hoy por $ 600 / cert / mes. Regístrese para su invitación a continuación: http://aws.amazon.com/cloudfront/custom-ssl-domains/

Actualización : los certificados proporcionados por el cliente de SNI ahora están disponibles sin cargo adicional. Mucho más barato que $ 600 / mes, y con XP casi muerto, debería funcionar bien para la mayoría de los casos de uso.

@skalee AWS tiene un mecanismo para lograr lo que pide el cartel, "implementar SSL para un bucket de Amazon s3", se llama CloudFront. Estoy leyendo "implementar" como "usar mis certificados SSL", "no" simplemente poner una S en la URL HTTP que estoy seguro de que el OP podría haber supuesto.

Dado que CloudFront cuesta exactamente lo mismo que S3 ($ 0.12 / GB), pero tiene un montón de características adicionales en torno a SSL Y le permite agregar su propio certificado SNI sin costo adicional, es la solución obvia para "implementar SSL" en su dominio.

Joseph Lust
fuente
64
CloudFront no es S3.
skalee
66
@skalee Correcto, pero si desea acceder a él a través de un dominio con certificados SSL personalizados, como lo solicita el OP, puede configurar certificados SSL CNAME personalizados de esta manera y acceder a él a través de CF.
Joseph Lust
2
Por el momento, he configurado dos CNAME: static-s3 y static-cf, el primero apunta directamente a mi S3, el segundo a CF. Primero no puede soportar SSL, segundo puede, pero es CF y no S3 como señala skalee. Eso es lo mejor que creo que podemos hacer a partir de ahora.
Peligro el
2
WOW Supongo que de alguna manera tienen que compensar los costos de almacenamiento cada vez más baratos. al menos es prorrateado sin embargo. si solo usa su certificado SSL durante 1 hora en un mes, solo
cuesta
1
@ Elegant.Scripting si tiene un certificado SSL dedicado (no un certificado SNI), entonces esa máquina necesita una IP dedicada que incurre en costos. presumiblemente se necesita una IP dedicada para usted en cada lugar del mundo donde S3 aloja sus datos. Entonces eso suma. Pero creo que se debe principalmente a que las personas que publican no lo necesitan y pueden aumentar el precio para aquellos que sí lo hacen. Si no necesita admitir IE6, debería estar de acuerdo con el certificado SNI en CloudFront.
Simon_Weaver
3

Si realmente lo necesita, considere las redirecciones.

Por ejemplo, en la solicitud para assets.my-domain.example.com/path/to/fileque pudiera realizar una redirección 301 o 302 al my-bucket-name.s3.amazonaws.com/path/to/fileo s3.amazonaws.com/my-bucket-name/path/to/file(recuerde que en el primer caso my-bucket-nameno puede contener ningún punto, de lo contrario no coincidirá *.s3.amazonaws.com, s3.amazonaws.comse indica en el certificado S3).

No probado, pero creo que funcionaría. Sin embargo, veo pocas trampas.

El primero es bastante obvio, una solicitud adicional para obtener esta redirección. Y dudo que pueda usar el servidor de redireccionamiento proporcionado por su registrador de nombres de dominio, de alguna manera tendría que cargar el certificado adecuado, por lo que debe usar su propio servidor para esto.

El segundo es que puede tener URL con su nombre de dominio en el código fuente de la página, pero cuando, por ejemplo, el usuario abre la imagen en una pestaña separada, la barra de direcciones mostrará la URL de destino.

skalee
fuente
2
No estoy seguro, pero creo que esto podría causar problemas CORS.
xdhmoore
3

No es posible directamente con S3, pero puede crear una distribución de Cloud Front desde su bucket. Luego vaya al administrador de certificados y solicite un certificado. Amazon los regala gratis. Una vez que haya confirmado con éxito la certificación, asígnela a su distribución de Cloud Front. También recuerde establecer la regla para redirigir http a https.

Estoy alojando un par de sitios web estáticos en Amazon S3, como mi sitio web personal al que he asignado el certificado SSL, ya que tienen la distribución de Cloud Front.

Mika Kujapelto
fuente
y como asignaste el nombre de dominio?
netshark1000
Primero vaya al administrador de certificados y solicite un nuevo certificado. Agregue su dominio allí y también incluya subdominios allí, si es necesario. Realmente no duele nada poner subdominios allí, así que también podría poner example.com y * .example.com allí.
Mika Kujapelto
0

Como se mencionó anteriormente, no puede crear certificados gratuitos para depósitos S3. Sin embargo, puede crear la distribución de Cloud Front y luego asignar el certificado para Cloud Front. Solicita el certificado para su dominio y luego lo asigna a la distribución de Cloud Front en la configuración de Cloud Front. He utilizado este método para servir sitios web estáticos a través de SSL, así como para servir archivos estáticos.

Para la creación de sitios web estáticos, Amazon es el lugar indicado. Es realmente asequible obtener un sitio web estático con SSL.

Mika Kujapelto
fuente
2
Para todos los que llegan aquí usando google: Recuerde crear su certificado de AWS (también) en la región de Virginia del Norte. De lo contrario, no podrá seleccionarlo en su distribución de CF
KLoozen