【问题标题】:How to secure Tomcat on port 80?如何在端口 80 上保护 Tomcat?
【发布时间】:2012-07-11 10:30:27
【问题描述】:

我对如何在我的 Web 应用程序中配置 Tomcat 5.0.30 以保护 80 端口有疑问。

我在 server.xml 文件中的当前配置是:

<Connector port="8443" 
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" disableUploadTimeout="true"
           acceptCount="100" debug="0" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" 
       keystoreFile="C:/Data/easyapIP/leaseplan/keystore/.keystore"
           keystorePass="aaassdddd" 
/>

并且在 web.xml 文件中:

<context-param>
    <param-name>listenPort_https</param-name>
    <param-value>8443</param-value>
</context-param>

这个配置的问题是我们的客户端不能再访问这里,因为 8443 端口被他们的防火墙阻止了。

似乎 80 是他们被允许使用的唯一端口,所以我尝试进行要求更改以保护此端口。

明显的变化是:

<Connector port="80" 
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" disableUploadTimeout="true"
           acceptCount="100" debug="0" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" 
       keystoreFile="C:/Data/easyapIP/leaseplan/keystore/.keystore"
           keystorePass="aaassdddd" 
/>

<context-param>
    <param-name>listenPort_https</param-name>
    <param-value>80</param-value>
</context-param>

但我无法让它工作,我收到 SSL 错误连接。

我做错了什么?

提前致谢。

【问题讨论】:

  • 你使用 https://localhost/... 吗?
  • 您收到什么“SSL错误连接”?
  • 你试过不使用 :80 端口吗?
  • 此错误:错误 107 (net::ERR_SSL_PROTOCOL_ERROR):

标签: security tomcat web-applications


【解决方案1】:

HTTPS 通信的标准端口是 443,您的用户很可能也可以使用它 - 只需点击未指定端口的 https:// URL。在防火墙上阻止 443 是非常罕见的。

要测试,请将 server.xml 更改为:

<Connector port="443" 
           ...
/>

<context-param>
    <param-name>listenPort_https</param-name>
    <param-value>443</param-value>
</context-param>

【讨论】:

  • 我们不能使用那个端口,因为我们已经有另一个应用程序在监听它。
【解决方案2】:

您无法拥有安全的 Tomcat 5.0.30:该版本的 Tomcat (5.0) 已经有 8 年没有更新了。

【讨论】:

    【解决方案3】:

    嗯,问题是防火墙阻止了端口 80。我们打开了该端口,并且在 Tomcat 中将端口 80 配置为 HTTPS 没有问题。

    感谢您的帮助!

    【讨论】:

      【解决方案4】:

      您的客户必须通过https://somewhere.com:80/something

      访问它

      【讨论】:

      • 把 https:// 放在前面。你能验证端口是否打开了吗?检查 netstat,也尝试 telnet 到端口 80
      • 端口 80 是开放的,因为如果我配置一个 http 连接(不是 https),它就可以工作。当我更改为 https 时,我收到 SSL 连接错误(上面提到的错误 107)
      • 对不起,我已经在用你写的网址尝试访问了。
      • 在 Chrome 中找到“使用 TLS 1.0”选项并检查它。并尝试使用其他浏览器。
      • 也尝试将 sslProtocol="TLS" 更改为 sslProtocol="TLSv1",不确定那个老化的 tomcat 是否可以接受(顺便说一句,5.5 已宣布 EOL)
      猜你喜欢
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 2013-04-25
      • 2017-03-29
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      相关资源
      最近更新 更多