首页 > 解决方案 > GCP 上的 Spring App - Cloud Run - 仅 HTTPS - 主机和端口的这种组合需要 TLS

问题描述

我的 Spring 应用程序使用让加密并且仅是 https。我没有包含 http 到 https 的东西,因为它在邮递员中使用 https:// 格式对我有用

当我部署到 Cloud Run 时,提到了自定义端口(spring 中指定的端口)并使用仪表板中的 URL 进行了测试

https://..blah..run.app

我收到错误/消息

错误请求 主机和端口的这种组合需要 TLS。

Cloud Run 需要什么配置才能解决此问题?

我在服务详细信息页面上看到的 url 有 htpps://... 在此处输入图像描述

编辑: 如果 Cloudrun 不需要我处理 SSL,我可以删除应用程序属性条目

server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:key/keystore.p12
server.ssl.key-store-password=${lets.secret}
server.ssl.key-alias=someCertAlias
server.ssl.enabled=true

那么我能得到关于是否从 spring 中删除 SSL 的答案吗?如果cloudrun总是使用http,我所有的调用都使用redirectConnector,这似乎毫无意义

标签: spring-bootgoogle-cloud-run

解决方案


Cloud Run 服务侦听 HTTP 和 HTTPS。您在容器中运行的应用程序必须侦听仅配置了 HTTP 的端口。

仅供参考:对于面向公众的 Web 服务器,您几乎应该始终启用 HTTP。否则,当用户在浏览器中输入www.example.com时,用户将收到连接错误。并非总是如此,例如.dev gTLD,但这是一种很好的做法。当用户使用 HTTP 协议连接到 Cloud Run 时,Cloud Run 会将用户重定向到 HTTPS 并使用 HTTP 协议连接到您的应用程序。


推荐阅读