如何使用 Cloudflare 为 S3 存储桶网站添加 HTTPS在支持 HTTPS 和自定义域的 S3 存储桶中托管静态网站

这篇具有很好参考价值的文章主要介绍了如何使用 Cloudflare 为 S3 存储桶网站添加 HTTPS在支持 HTTPS 和自定义域的 S3 存储桶中托管静态网站。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如何使用 Cloudflare 为 S3 存储桶网站添加 HTTPS在支持 HTTPS 和自定义域的 S3 存储桶中托管静态网站

AWS S3 提供了一种将文件存储在高度可用的对象存储中的简单方法,它还支持设置静态网站。如果您不需要动态内容,那么使用 S3 存储桶是一个很有吸引力的托管选项。您几乎不需要为存储支付任何费用,而且您可以忘记可扩展性。

这种方法有两个问题。它不支持使用你自己的域名,并且连接到它,它不支持HTTPS。要解决这些问题,您需要与 S3 一起使用提供这些缺失功能的另一项服务。

一种选择是 Cloudflare,它提供支持 S3 存储桶网站的代理,并且可以与自定义域名一起使用。

我们经常写这样的文章。加入我们的邮件列表,让我们保持联系。

本文介绍了在 Cloudflare 提供加密和 DNS 设置的情况下设置在 S3 中托管的自己的静态网站所需执行的步骤。

作为先决条件,您需要在 Cloudflare 或其他地方注册的自己的域名。

设置

要使用 Cloudflare 在您自己的域上托管静态网站,您需要设置 S3 和 Cloudflare 这两项服务。前者存储网站并提供 HTTP 接口,而后者管理代理和 HTTPS 设置。

cloudflare 怎么设置 https 缓存实际按86400,网络,前端,服务器

 

桶配置

第一步是创建一个存储桶并上传内容。这可以使用 CLI 或使用控制台手动完成。

桶的名称很重要。它必须是站点的域,否则它将无法工作。这是因为 S3 使用浏览器发送的 Host 标头来知道要使用哪个存储桶,而该标头是站点的域。

cloudflare 怎么设置 https 缓存实际按86400,网络,前端,服务器

公共访问

接下来,您需要取消阻止公共访问。存储桶网站本质上会公开所有对象,而这些对象必须允许匿名访问。

近年来,由于存储桶配置错误导致的安全漏洞越来越多,例如这个和这个漏洞,AWS 开始对此采取措施。现在当它的策略允许公共访问时,桶上有一个显着的标签,这是一件好事。它允许某人在不解密存储桶策略的情况下验证存储桶是否私有。

另一个障碍是新存储桶的公共访问被阻止,您需要明确禁用它以允许公共访问。我对此有不同的看法,因为默认情况下存储桶是私有的,您需要启用公共访问。现在您需要在两个地方而不是一个地方启用它。

因此,要使存储桶网站正常运行,请确保禁用公共访问块:

cloudflare 怎么设置 https 缓存实际按86400,网络,前端,服务器

然后,当然,您需要一个允许匿名访问的存储桶策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::myawsexperiments.com/*"
            ]
        }
    ]
}

cloudflare 怎么设置 https 缓存实际按86400,网络,前端,服务器

桶网站

最后,启用存储桶网站托管。请注意端点 URL,因为这是网站可用的地方:

cloudflare 怎么设置 https 缓存实际按86400,网络,前端,服务器

当您在浏览器中打开 URL 时,它会起作用:

cloudflare 怎么设置 https 缓存实际按86400,网络,前端,服务器

但要注意两件事。首先,它被报告为“不安全”,这意味着它使用 HTTP 而不是 HTTPS。其次,它使用存储桶网站 URL 而不是您自己的域。

对于 bucket 网站,这是你能走的最远的地方。S3 不允许任何配置将站点托管在不同的域上,并且肯定没有办法添加证书来提供 HTTPS。您需要为这些功能使用不同的服务。幸运的是,有几种方法可以从这里开始。在本文的其余部分,我们将研究如何配置 Cloudflare 以提供缺少的功能。

Cloudflare 设置

要将 Cloudflare 用于您的域,您需要将其用作域的名称服务器。如果您已将域转移到 Cloudflare,则无需执行任何其他操作。如果您使用不同的域提供商,则需要添加两个指向 Cloudflare 的 NS 记录。确切的过程取决于域提供商,但在 Cloudflare 文档上有详细的文档。

然后您需要设置 Cloudflare DNS。在根目录添加一条CNAME记录,域名为S3 bucket网站(没有http://的部分)。确保“代理状态”为“已代理”。

cloudflare 怎么设置 https 缓存实际按86400,网络,前端,服务器

这些设置背后发生了很多事情。

首先,根据 DNS 标准,域的顶点不允许使用 CNAME。顶点是“裸”域,这是它的注册方式,例如example.com. 相比之下,www.example.com就不是顶点。这会阻止 CNAME 重定向并提示您使用子域,例如www. 为了解决这个问题,Cloudflare 提供了CNAME 扁平化。这将解析 CNAME 指向的 A 记录并返回这些记录。因此,您可以在顶点上使用 CNAME,同时保持对标准的遵从性。

其次,内容指向 S3 存储桶网站的域,但这并不是定义它指向哪个存储桶的内容。相反,它使用 HTTP 请求的主机标头,该标头是 Cloudflare ( ) 管理的域名example.com。有趣的是,如果您只指定存储桶网站域的末尾( ) ,它就会起作用s3-website-eu-west-1.amazonaws.com。

第三,代理设置定义 Cloudflare 将站在访问者和存储桶网站之间。这就是它提供 HTTPS 的方式。

由于 bucket 网站使用纯 HTTP,您需要配置“灵活”模式:

cloudflare 怎么设置 https 缓存实际按86400,网络,前端,服务器

此设置为访问者提供加密连接,但为存储桶网站提供未加密连接。

最后,作为最佳实践,启用从 HTTP 到 HTTPS 的自动重定向。这确保流量将被加密,但即使通过 HTTP 访问网站也能正常工作:

cloudflare 怎么设置 https 缓存实际按86400,网络,前端,服务器

通过所有这些设置,在浏览器中打开域会通过安全连接显示网站:

cloudflare 怎么设置 https 缓存实际按86400,网络,前端,服务器

安全吗?

浏览器显示挂锁,但加密不是端到端的。虽然访问者和 Cloudflare 之间的流量使用 HTTPS,但 Cloudflare 和 S3 之间的部分没有。相反,它使用公共互联网来获取网站的纯文本。

这暗示了一种错误的安全感。如果攻击者可以捕获浏览器和 Cloudflare 之间以及 Cloudflare 和 S3 之间的流量,他就可以关联给定用户发出的请求。这违背了加密的目的。

另一方面,连接最关键的部分是在用户附近。易于监控的公共 WiFi 网络或流经单个路由器的酒店网络流量比在两个数据中心之间流动的数据危险得多。

优点

主要优点是该网站可以在您自己的域名上访问,并且带有挂锁图标。从成本上讲,它几乎是免费的。您需要为 S3 端的存储、请求和带宽付费,但 Cloudflare 对于此用例是免费的。

这种设置的一个好处是您不需要配置 HTTPS 的细节。有很多选项,很容易出错。甚至还有一个在线测试器来验证您的设置。Cloudflare 管理证书和加密,确保设置安全。

借助 Cloudflare 的 CNAME 扁平化功能,可以在不破坏某些客户端的情况下使用顶级域。这是一些 DNS 提供商遇到的问题,而且很难解决。

此外,此设置通过 Cloudflare 的网络路由流量,并且提供的不仅仅是路由。它添加缓存,提供一些 DDoS 保护,以及您可以指定永远在线的错误页面。

缺点

主要缺点是您需要使用两种不同的服务。这使得从长远来看更难维护,但根据我的经验,在初始设置后没有太多事情要做。

并且缺乏端到端加密会损害一些安全性。文章来源地址https://www.toymoban.com/news/detail-765446.html

 
                    

到了这里,关于如何使用 Cloudflare 为 S3 存储桶网站添加 HTTPS在支持 HTTPS 和自定义域的 S3 存储桶中托管静态网站的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网站和API支持HTTPS,最好在Nginx上配置

    随着我们网站用户的增多,我们会逐渐意识到HTTPS加密的重要性。在不修改现有代码的情况下,要从HTTP升级到HTTPS,让Nginx支持HTTPS是个很好的选择。今天我们来讲下如何从Nginx入手,从HTTP升级到HTTPS,同时支持静态网站和SpringBoot应用,希望对大家有所帮助! 生成SSL自签名证书

    2024年02月11日
    浏览(36)
  • Hadoop 集群中使用 S3(对象存储)文件系统

    Hadoop 自带 S3 依赖,位置如下: 但是这些依赖包默认不在 hadoop classpath 下面。可以使用以下两种方法引入这两个包: 修改hadoop的core-site.xml文件: s3的配置模板(记得修改成自己的 secret key 与 access key ) 更改完毕并重启集群后 测试hdfs dfs -ls s3a://hive0614/ 等命令操作 S3 中的文件

    2024年02月06日
    浏览(44)
  • 将BP中证书添加到浏览器,使得访问https网站不产生告警

    打开Burp Suite,在Burp Suite自带浏览器上输入http://burp/,下载cacert证书。 完成下载后,找到证书下载位置。 打开火狐浏览器,选择设置。 之后打开隐私与安全,找到证书,点击查看证书。 进入后,点击导入,找到下载的证书【cacert.der】(请注意文件后缀),点击打开,点击确

    2024年02月13日
    浏览(52)
  • 使用Ceph对象存储的Amazon S3接口(基于nautilus版本)

    Ceph是一个分布式存储系统,提供了多种数据存储方式,包括对象存储。Amazon S3是一个流行的对象存储服务,Ceph提供了Amazon S3接口的兼容性,使得Ceph可以作为一个云存储解决方案。 分片上传接口是Amazon S3接口中的一个重要功能,它允许将大文件拆分成小的分片上传,降低了上

    2024年02月06日
    浏览(48)
  • 2023新版网盘云存储系统网站PHP源码 支持转存+限速 可稳定运营级

    新运营级限速网盘系统网站源码是一款非常实用的系统,可以帮助您打造一个安全可靠的网盘分享平台。该系统支持用户使用微信扫码登录,上传文件分享链接可自定义,文件可一键保存到我的网盘。此外,该系统还支持微信和支付宝官方接口,易支付接口不强制且可自定义

    2024年02月11日
    浏览(55)
  • 【Terraform学习】使用 Terraform 托管 S3 静态网站(Terraform-AWS最佳实战学习)

    前提条件 安装 Terraform : 地址 下载仓库代码模版 本实验代码 位于  task_s3  文件夹中 。 变量文件  variables.tf    在上面的代码中,您将 声明 , aws_access_key , aws_secret_key 和 区域变量 。 声明站点变量 ,站点的 根域和子域 。在上面的代码中 添加网站的 domain值 和 submain值

    2024年02月11日
    浏览(52)
  • https网站如何访问http网站

    由于谷歌浏览器的安全策略更新后,https网站无法直接下载http网站的文件。解决思路有以下几种情况:1.两个网站都同时改为http或https。2.通过nginx转发。3.通过后端java代码获取对方网站的文件流然后把流返回给前端。 本文介绍如果通过nginx转发访问http网站。 配置规则一如下

    2024年02月02日
    浏览(56)
  • 利用 cloudflare 实现域名HTTP转变成 HTTPS

    https://dash.cloudflare.com/   域名解析需要 在cloudflare 做SSL/TLS 加密链接设置 灵活 加密浏览器与 Cloudflare 之间的流量 后台设置的链接不用改变,使用真实的HTTP链接。 在wordpress functions 上做域名替换。 完美

    2024年03月12日
    浏览(50)
  • [ 云计算 | AWS 实践 ] 使用 Java 列出存储桶中的所有 AWS S3 对象

    本文收录于【#云计算入门与实践 - AWS】专栏中,收录 AWS 入门与实践相关博文。 本文同步于个人公众号:【 云计算洞察 】 更多关于云计算技术内容敬请关注:CSDN【#云计算入门与实践 - AWS】专栏。 本系列已更新博文: [ 云计算 | AWS 实践 ] Java 应用中使用 Amazon S3 进行存储桶

    2024年02月06日
    浏览(53)
  • 【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习)

      本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解决分享 《日志收集》ELK+各种中间件 《运

    2024年02月10日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包