Amazon S3静态网站 - 将HTTPS重定向到HTTP

use*_*666 13 amazon-s3 amazon-web-services amazon-cloudfront

我即将使用S3/Cloudfront启动静态网站.我不需要网站的HTTPS,但网站的当前迭代是通过HTTPS提供的,并且有数百个链接和索引的URL是HTTPS.

我一直在搜索数小时,并且在仅使用S3/Cloudfront时无法找到将我们的HTTPS URL重定向到HTTP的方法.目前,HTTPS URL将拒绝连接,而不是重定向到页面的HTTP版本.

没有Apache,似乎不可能这样做.任何提示?

小智 26

除非您使用完整的域路径,即S3上的静态网站托管不支持HTTPS example.com.s3-website-us-east-1.amazonaws.com.由于您希望保留您的URL,因此您必须使用CloudFront分配来处理SSL.

  1. 将您的SSL证书上传到CloudFront: aws iam upload-server-certificate --server-certificate-name CertificateName --certificate-body file://public_key_certificate_file --private-key file://privatekey.pem --certificate-chain file://certificate_chain_file --path /cloudfront/path/[1]
  2. 创建云端分发并进行如下配置:

    • Origin域名:你的s3桶
    • 备用域名(CNAME):您网站的所需位置,例如example.com或www.example.com
    • SSL证书:选择您在步骤1中上载的SSL证书.
    • 自定义SSL客户端支持:除非您需要兼容真正的旧客户端,否则请选择"仅支持服务器名称指示的客户端"并节省600美元.

    如果要将https重定向到s3重定向,则原始域不应该是自动完成存储桶,但静态重定向端点s3会为您提供

  3. 保存您的发行版.它应显示状态"进行中".分发"部署"通常需要大约15分钟; 在您的发行版"已部署"之前,请不要继续执行第4步.

  4. 验证分发是否有效:通过列表中的域名导航到CloudFront分配,例如"https // d111111abcdef8.cloudfront.net /".你应该看到你的网站.
  5. 将DNS记录更改为指向CloudFront分配而不是S3存储桶.

[1]如果您在将证书添加到CloudFront时遇到问题,请查看本文以获取更多信息:http: //docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html#cnames-and-https-procedure

  • 嘿伙计们,我有一个类似的问题,我想将apex http重定向到https,使用ALIAS记录进行s3重定向,但是当用户手动尝试键入apex https时出现问题.所以我按照这些步骤在CF上安装我的ssl但在尝试此解决方案时获得"访问被拒绝".我终于通过修改第2步来弄明白了.原始域不应该是自动完成存储桶,但静态重定向端点s3会为您提供. (10认同)
  • 可以验证此设置是否有效,并允许您使用S3静态网站托管+重定向所有请求配置apex域以重定向http://和https://.为了让设置工作,我需要进行的两项更改是A)@RyanRomanchuk使用**静态网站端点URL**example.com.s3-website-us-east-1.amazonaws. com` for origin(救命者,ty)和B)将`Origin Protocol Policy`设置为`HTTP Only`.此外,在安装过程中,如果缓存了不需要的响应,请记住等待设置更新以进行部署并使用缓存失效. (2认同)