Tomcat从8443到443

时间:2014-09-09 11:40:21

标签: java tomcat ssl tomcat7 tomcat8

我在tomcat 8上启动了spring MVC web应用程序。

我已经为SSL授权创建了证书。 我有这样的东西在server.xml

<Connector SSLEnabled="true" 
  keystoreFile="ks.p12" 
  keystoreType="pkcs12" 
  keystorePass="*****"
  port="8443"
  scheme="https"
  secure="true" 
  sslProtocol="TLS"/> 

确定。现在一切都运作良好!

但是如何在443端口上启动服务器? 当我尝试使用开放式https://dev-sp.ge/时,它会向我发送消息&#34;此网页不可用&#34;

enter image description here

5 个答案:

答案 0 :(得分:5)

在unix系统中,使用1024以下的端口通常需要特殊权限或权限。

您的Tomcat使用端口8443,因为它不在&#34;受保护的#34;港口范围。

当然,第一步是将端口更改为Tomcat 443中的server.xml

允许Tomcat使用443或80端口的一种方法是使用Authbind

  

authbind 允许没有或不应该以root身份运行的程序以受控方式绑定到低编号端口。

必须在/etc/default/tomcat8中启用低于1024个端口。添加以下行:

AUTHBIND=true

为此创建一个新文件:

sudo touch /etc/authbind/byport/443
sudo chown tomcat8 /etc/authbind/byport/443
sudo chmod 500 /etc/authbind/byport/443

答案 1 :(得分:1)

对我有用的解决方案:将443个请求重定向到8443。

iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443 sudo / sbin / iptables-save

答案 2 :(得分:0)

需要MacOSX&gt; = Yosemite。

添加:

echo "
rdr pass inet proto tcp from my-domain.com to my-domain.com port 443 -> 127.0.0.1 port 9443
" | sudo pfctl -ef -

或者:

echo "
rdr pass inet proto tcp from any to any port 443 -> 127.0.0.1 port 9443
" | sudo pfctl -ef -

列表:

sudo pfctl -s nat

卸下:

sudo pfctl -F all -f /etc/pf.conf

https://salferrarello.com/mac-pfctl-port-forwarding/

答案 3 :(得分:0)

PREROUTING不适用于我。 我通过以下方式成功实现了这一目标:

@Entity
public class LocationWeather extends Location{

    @ElementCollection
    @CollectionTable(name="weather", joinColumns= {@JoinColumn(name="location_id")})
    @Column(name="weather")
    private List<Weather> weather;

sudo / sbin / iptables-save(使其永久保存)

答案 4 :(得分:0)

喜欢在@icza的答案中添加更多内容(因为我是新手,所以我无法发表评论)

如果您在Eclipse中运行Tomcat服务器,请使用

authbind --deep ./eclipse

因为Eclipse不在乎authbind