我创建了一个S3存储桶并启用了“静态网站托管”下的“将所有请求重定向到另一个主机名”。
这是有效的,当我访问http://www.XXXX.com.s3-website-us-east-1.amazonaws.com时,我被重定向到我的最终目的地。
但是,如果我尝试通过HTTPS访问相同的网址:https://www.XXXX.com.s3-website-us-east-1.amazonaws.com,则连接超时。
是否可以指定要使用的SSL证书,以便重定向可以处理HTTPS流量?
答案 0 :(得分:0)
S3本身,不,这是不可能的。网站端点根本不会说SSL,并且REST端点不处理重定向或允许除*.s3(-region).amazonaws.com
证书以外的任何证书。
但是,如果您的客户支持SNI,您可以将CloudFront与S3结合使用。
创建使用主机名和SSL证书配置的CloudFront分配,但不要使用“S3 Origin”。使用“自定义源”,该来源是您的S3网站端点主机名,所有请求都使用http转发到源(即使它是前端的https)。
如果您不熟悉CloudFront,这可能听起来有点令人费解,但我将其用于此目的(等等)。
请求命中CloudFront,允许您使用自己的SSL证书......然后CloudFront将请求转发给S3,S3返回重定向,CloudFront将缓存并返回给请求者(以及将来的请求者命中)相同的CloudFront边缘位置。)
这个额外层的成本可以忽略不计,你不应该看到任何有意义的性能变化(如果有的话,可能会有轻微的速度提升)。