【问题标题】:API-Platform Admin-Docker-Container has HTTP link in Response Header of HTTPS-Request behind traefikAPI-Platform Admin-Docker-Container 在 traefik 后面的 HTTPS-Request 的响应标头中有 HTTP 链接
【发布时间】:2020-05-15 11:26:10
【问题描述】:

当前版本的 api-platform 和我为 docker-compose / traefik-1 配置找到的示例对我不起作用。

我想出了一个可以正常工作的配置:所有服务都没有转发端口,traefik 背后的服务使用 HTTP,traefik 使用 HTTPS,服务使用主机名:

到目前为止,一切都很好,但还有一个问题, 管理容器向

发送一个正确的请求
https://vulcain.api-platform-new.loc  

在我的设置中,但第二个设置为

HTTP://vulcain.api-platform-new.loc:443/docs.jsonld

这似乎是因为https://vulcain.api-platform-new.loc-Request 的“链接”请求标头说:

link: <http://vulcain.api-platform-new.loc:443/docs.jsonld>; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"

(注意 HTTP 与 HTTPS)

导致“出现问题”的原因是:

fetchJsonLd.ts:14 Mixed Content: The page at 'https://admin.api-platform-new.loc/#/' was loaded over HTTPS, but requested an insecure resource 'http://vulcain.api-platform-new.loc:443/docs.jsonld'. This request has been blocked; the content must be served over HTTPS.

我在这一切上花了几天时间,如果有人能告诉我如何修复 Response-Header-Link 以使用 httpS,我会非常高兴!

【问题讨论】:

    标签: docker docker-compose traefik api-platform.com


    【解决方案1】:

    我今天遇到了同样的问题。我使用 Traefik 作为我的主要网关服务器(使用 Docker),并且我有一个 API 平台安装,该 API 位于 Vulcain docker 映像后面。似乎在标头中转发了端口 443,但 proto 是 HTTP,这导致了问题中描述的错误。 我无法正确配置多层容器,以便一路正确检测 SSL。我的解决方案是编辑前端 PHP 控制器,使其不信任转发的端口和原型。

    public/index.php

    if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) {
      // Do not trust all forwarded headers, only the host and for.
      // @see Request::HEADER_X_FORWARDED_ALL
      Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_FOR && Request::HEADER_X_FORWARDED_HOST);
    }
    

    另外,您可以指定一个名为HTTPS 的环境变量,Symfony 将使用它为生成的 URL 设置正确的方案。只需在您的.env 文件中输入以下代码:

    # Symfony router use HTTPS
    # Because we can not trust port/proto forwarded by Vulcain
    HTTPS=true
    

    就是这样,您的 Symfony 生成的 URL 将正确使用 HTTPS 方案。我知道正确的方法应该是配置容器以转发正确的端口和原型,但这是最简单的方法。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 2022-06-30
      • 2023-01-04
      • 1970-01-01
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      相关资源
      最近更新 更多