【问题标题】:Is it possible to rewrite an HTTP URL on a HTTPS connector?是否可以在 HTTPS 连接器上重写 HTTP URL?
【发布时间】:2019-03-07 23:01:03
【问题描述】:

所以我们有一个在端口 58080 上运行 tomcat 7 的 web 服务,我的任务是从 http 迁移到 https。我有 SSL 配置集和功能,但前提是您直接访问 url https://<domain>.com:58080。我希望它能够收听http://<domain>.com:58080<domain>.com:58080,但将它们重写为https url。目前,如果您未在 url 中指定 https,则没有答案,所以我想知道这是否可行以及如何实现?

谢谢!

编辑:我在 web.xml 中也有需要 SSL 配置。

【问题讨论】:

  • 仅供参考,没有协议就没有收听。许多客户端让您只输入host[:port][/path]作为URL并自动添加 http:(或https:如果HSTS适用),但任何实际连接都使用实际协议,通常http 或 https,但其他的也是可能的。还修复了您的降价,因此尖括号不会消失。
  • 如果使用非标准端口,您必须忍受一些可用性问题,因为如果用户错误或仅给定host:port,浏览器就会无法连接。服务器/域是否在 80 和 443 上运行其他东西? Java 网站通常会在前面有其他东西作为代理。
  • 使用第二个端口在 58081 上运行 HTTPS,并始终将 HTTP 重定向到 58081 上的 HTTPS url。有关更多信息,请参阅this question and the answers。另外,this one.

标签: java http ssl https tomcat7


【解决方案1】:

这不是违背了拥有 https 的目的吗?

通常您将使用 https 进行外部访问,使用 http 进行内部访问。 http 端口与 https 端口不同。

默认值为 http:80 和 https:443 - 我相信你已经知道了。

但是你不能在同一个端口上同时拥有 http 和 https。 Tomcat将无法区分协议是https还是http。

【讨论】:

  • conf/server.xml 中唯一的连接器是端口 58080 上的 SSL 连接器。所以我想问题是如果我在 58080 上没有 http 连接器并且有人转到 URL“webserver .com:58080" 他们不应该将他们的 url 重写为 "HTTPS://webserver.com:58080" 吗?
  • 但这不仅仅是重写 https,您还必须适应协议从 http 到 https 的变化、证书和所有这些好东西。如果客户端使用的是浏览器,那么它将支持该协议,如果客户端使用的是rest或soap或一些这样的api,那么它必须处理包括提供证书在内的协议。
  • 这个链接可能对stackoverflow.com/questions/33208796/…有帮助
猜你喜欢
  • 1970-01-01
  • 2017-03-10
  • 2013-08-23
  • 1970-01-01
  • 2014-09-20
  • 2016-03-20
  • 1970-01-01
  • 2012-02-28
  • 2016-09-15
相关资源
最近更新 更多