【问题标题】:Serving HTTPS with Cloudfront but backing HTTP orgin使用 Cloudfront 提供 HTTPS 但支持 HTTP 源
【发布时间】:2019-02-11 09:49:33
【问题描述】:

我有一个在 EC2 上运行的 Wordpress 服务器,目前它只运行 HTTP,我宁愿避免在其上设置 SSL 的麻烦。我希望我可以选择 Cloudfront 来使用 HTTPS(使用 AWS 证书托管 SSL 证书)向客户端提供所有请求,然后通过对源服务器的 HTTP 调用刷新它的缓存。这种类型的配置对于 Cloudflare 来说非常简单,但与传统的 CDN 相比,它更像是一种反向代理。这是 Cloudfront 的合理架构吗?

我最初认为查看器协议策略的“行为”可以设置为“将 HTTP 重定向到 HTTPS”,但至少最初我似乎让页面通过 HTTPS 加载,但页面上的所有资产都无法加载因为它们仍然指向 HTTP。可能这是一个不同的问题,但我遇到了一个问题。

仅供参考,这是我的行为仪表板:

还有我的出身:

【问题讨论】:

    标签: amazon-cloudfront


    【解决方案1】:

    在设置 CloudFront 以处理 HTTPS 后,您还需要配置 WordPress,以便它使用 HTTPS 生成所有链接和资产源。你可以关注documentation

    简而言之:

    1. 转到设置 -> 常规
    2. 在 WordPress 地址 (URL) 和站点地址 (URL) 中将 http:// 更改为 https://

    【讨论】:

    • 恐怕这并不能回答如何使用HTTPS 为客户提供服务,同时使用 Cloudfront 拥有HTTP EC2 后端。
    • 这是问题的一部分:“......至少最初我似乎让页面通过 HTTPS 加载,但页面上的所有资产都无法加载,因为它们仍然指向 HTTP "
    【解决方案2】:

    您可以通过 AWS 控制台中的 Origin Protocol Policy 选项进行操作。选择HTTP Only

    为此,请选择您的 Cloudfront 配置 > 选择 Origins and Origin Groups 选项卡 > 选择您的来源 > 单击 Edit 按钮

    请记住,您正在为Origin 进行更改。您必须保持Viewer Protocol PolicyRedirect HTTP to HTTPS 如问题所示,以便浏览器和Cloudfront 之间的流量保持HTTPS 而Cloudfront 通过HTTP 连接到您的Origin

    编辑:问题描述确实表明 origin 设置为 HTTP Only 应该足以做到这一点。仔细检查您的发行版是否处于Deployed 状态。

    【讨论】:

    • 这无济于事,所有 css/images 和 js 都失败了,浏览器正在尝试使用 http 加载它们,而 cloudfront 拒绝它。阻止:混合内容
    猜你喜欢
    • 2020-12-14
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多