gpt4 book ai didi

google-app-engine - 如何在 App Engine flex 环境和 Go 上正确启用 HTTPS?

转载 作者:IT王子 更新时间:2023-10-29 02:09:53 27 4
gpt4 key购买 nike

我正在尝试在部署到 GAE flex 环境的 Go 应用程序上启用 HTTPS。我已成功映射我的自定义域,并且正在使用 Google 管理的 SSL 证书。我将 app.yaml 配置为将 HTTP 重定向到 HTTPS,如下所示:

handlers:
- url: /.*
script: _go_app
secure: always

现在有两个问题我至今没能解决。

首先,上面的配置应该将 HTTP 流量重定向到 HTTPS,但显然它没有发生。

其次,当我在 url 框中添加 https:// 时,我在 Firefox、Chrome 和 Edge 上看到三种不同的行为。 Edge 将网站标识为安全,Firefox 将网站标记为安全连接,但表示它“已阻止此页面的不安全部分”,令人惊讶的是,Chrome 将网站标记为不安全(尽管它说证书有效!) .

有了这些症状,我想知道我是否应该采取额外的步骤来使重定向和 SSL 适用于我的网站?具体来说,我想了解 App Engine 并启用托管 SSL:

  1. 我应该继续使用 http.ListenAndServe(..) 在 HTTP 上提供页面,还是需要切换到 http.ListenAndServeTLS(..)

  2. 在我的 Go 应用程序中,我应该将 HTTP 重定向到 HTTPS 吗?或者上述设置应该可以正常工作?

在此先感谢您的帮助和建议。

附言:尝试不同的建议,我添加了 Strict-Transport-Security: max-age=31536000; includeSubDomains 处理程序的响应。这似乎也没有帮助重定向。

编辑/部分答案:

根据这个documentation ,在 Authentication changes 下,securelogin 处理程序已弃用。文档建议改用 Strict-Transport-SecurityX-Forwarded-Proto

我在服务器端使用 Strict-Transport-Security 来丰富我的响应 header :

func (h *STLHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
w.Header().Add("Strict-Transport-Security", "max-age=63072000; includeSubDomains")
h.nextHandler.ServeHTTP(w, req)
}

我想知道我是否在正确的地方使用了这个 header ?

最佳答案

对于我的第二组问题,我意识到我的页面上有混合内容。我的混合内容是指向一组字体的 http 链接。当我修复混合内容时,即将 http 更改为 https,Chrome 和 Firefox 安全警告都消失了。您还可以找到此页面 Avoiding the Not Secure Warning in Chrome在这件事上很有用。

关于google-app-engine - 如何在 App Engine flex 环境和 Go 上正确启用 HTTPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50083289/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com