Tomcat Http和Https在同一个端口上

时间:2010-05-13 13:00:29

标签: java http tomcat https

我在端口X上有一个Web服务端点和一个http连接器。 在某些时候,此端点需要切换到https,但在同一端口上! (我知道这不是正常的做事方式,但这是我的客户对他们正在使用的旧服务器的期望...)

有没有办法在tomcat中做到这一点?

4 个答案:

答案 0 :(得分:5)

Tomcat无法做到这一点.HTTP连接器仅接受SSL连接。

我们在内部开发了这样的代理。这并不难。您只需要检查第一个传入的数据包。寻找SSL握手的模式。我们只寻找CLIENT_HELLO。一旦找出协议,就可以相应地转发请求。

这真的很难看。如果可能的话,你不应该这样做。我们必须这样做,因为传统客户端会这样做,而且无法全部升级。

答案 1 :(得分:0)

存在HTTPS升级这样的事情,即明文HTTP连接在形成之后通过相互协议升级到HTTP。你是这个意思吗?如果是这样,Tomcat似乎不支持开箱即用,Java也不开箱即用。您可以自己编写一个可以执行此操作的Tomcat连接器;在客户端你有一个更有趣的问题; - )

但我会问为什么?端口不是那么昂贵,你不能使用两个。

答案 2 :(得分:-1)

您无需运行HTTP&在同一端口上使用HTTPS,配置Tomcat以将请求重定向到server.xml文件中的HTTPS。

答案 3 :(得分:-1)

我想知道为什么他们通常不在同一个港口!那不容易吗?

原因可能是相关的Java APIS(javax.net.ssl)不允许这样做;你必须有不同的服务器套接字。是否有任何替代SSL impls for Java?我不知道。