问题描述
在使用S3进行静态网站托管时,遇到了一个问题。他按照一篇博客文章的指导,想要将platform.demo.interos.net
重定向到platform.demo.interos.io
。但是当他在浏览器中访问时,浏览器并没有实际进行重定向,而是一直处于等待状态。但是当他使用curl -I platform.demo.interos.net
命令时,得到了一个301重定向的响应。所以他想知道为什么浏览器没有识别到301响应并进行重定向。
更新:
用户现在意识到问题是因为浏览器地址栏通常会自动添加https://
前缀,而带有协议前缀的URL不会进行重定向。用户想知道为什么会这样。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
博客文章中的方法已经过时,或者至少在当前环境下不完整,因为S3的网站托管端点根本不支持HTTPS。请求将超时。
要在指向存储桶的自定义域上启用HTTPS,您需要在Amazon证书管理器(ACM)的us-east-1区域中颁发证书(或者您可以从第三方购买证书并将其加载到ACM中),然后使用CloudFront分发来处理HTTPS并将请求转发到S3。
请参阅如何使用CloudFront为在Amazon S3上托管的静态网站提供服务?。请注意,即使您严格来说并没有在S3上“托管静态网站”,这些指令仍然适用。您仍然在使用静态托管功能,这是启用HTTPS的方法。
方案2
使用CloudFront和ACM来启用HTTPS可能会增加一些复杂性,但是这是目前最常用的方法。
另一种方法是使用CloudFront和ACM来启用HTTPS。这种方法可能会增加一些复杂性,但是这是目前最常用的方法。
以下是大致的步骤:
1. 在Amazon证书管理器(ACM)中创建或导入证书,确保证书位于us-east-1区域。
2. 创建一个CloudFront分发,将您的S3存储桶作为源,并将证书与分发关联。
3. 配置您的域名的DNS记录,将其指向CloudFront分发的域名。
请参阅如何使用CloudFront为在Amazon S3上托管的静态网站提供服务?,了解详细的步骤和配置选项。
请注意,这种方法需要一些额外的配置和步骤,但是它可以为您提供更好的灵活性和安全性。
以上是两种解决方案,您可以根据自己的需求选择适合您的方法。