【问题标题】:Tomcat 7.0.55 APR connector 8443 works but change to 443 does notTomcat 7.0.55 APR 连接器 8443 有效,但更改为 443 无效
【发布时间】:2017-04-23 19:52:41
【问题描述】:

我有多个 Digital Ocean 服务器,并且使用 HTTPS 和 Letsencrypt 证书运行 Confluence。我也为 JIRA 搭建了一个 Debian 8 服务器,并为该服务器执行 Apache Portable Runtime Native Tomcat 的 HTTPS,其方式与我为 Confluence 执行的方式相同,但使用许多配置都失败了。

我正在使用 Tomcat 7.0.55 和 Java 1.8.0_51(用于 Tomcat 和 JIRA 的 JRE)。我目前正在使用 fullchain_and_key.p12 (PKCS12) 作为 server.xml 中 SSL/HTTPS 连接器的证书和私钥。我有一个重定向到 SSL/HTTPS 连接器的 8080 连接器。我可以使用 8443 作为 SSL/TLS 连接器来运行它。我将端口从 8443 更改为 443,但始终无法使用。

我可以使用 8080 和 8443 进行远程登录检查。当我尝试 SSL/TLS 连接器的 443 端口时,我不能。默认情况下,Iptables 对于 DigitalOcean 服务器是完全开放的,我已经在我的所有服务器上验证了这一点。而且,我今天可以使用 443 远程登录到 Confluence 服务器。

我没有故障排除选项。有人可以帮忙吗?

谢谢

【问题讨论】:

  • Tomcat 是否以 root 身份运行?
  • 不,哈哈。就是这样!我刚刚修复了我的 iptables,我有我需要的东西。谢谢斯科特。

标签: tomcat tomcat7 jira confluence lets-encrypt


【解决方案1】:

我想通了。端口 80 和 443 是特权端口,即只有 root 拥有的进程才能访问它们。我将以下内容添加到 iptables 以解决此问题。因为我这样做很便宜,所以我选择不使用代理服务器(省钱)。 iptables 可以像这样提供端口访问和端口转发:

 sudo iptables -I INPUT 1 -p tcp --dport 8443 -j ACCEPT
 sudo iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
 sudo iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT
 sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

然后我将特权端口转发到 Tomcat 端口:

 sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
 sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-18
    • 2020-03-09
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 2018-10-17
    • 2015-09-14
    相关资源
    最近更新 更多