我在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;
答案 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
答案 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