2016-06-30 96 views
1

所以我添加了一个SSL证书到我的wildfly 9,它的工作,但我想我的standalone.xml配置听httpsport 443不是port 8443作为默认的配置,所以当我更新值${jboss.https.port:8443} to ${jboss.https.port:443}它会产生一个错误。 这是我在我的standalone.xml使wildfly侦听端口443不是8443

<server name="default-server"> 
      <http-listener name="default" socket-binding="http" redirect-socket="https"/> 
      <https-listener name="httpsServer" socket-binding="https" security-realm="ApplicationRealm"/> 
      <host name="default-host" alias="localhost"> 
       <location name="/" handler="welcome-content"/> 
       <location name="/images" handler="ImagesDirHandler"/> 
       <filter-ref name="server-header"/> 
       <filter-ref name="x-powered-by-header"/> 
      </host> 
</server> 

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> 
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> 
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/> 
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> 
    <socket-binding name="http" port="${jboss.http.port:8080}"/> 
    <socket-binding name="https" port="${jboss.https.port:8443}"/> 
    <socket-binding name="txn-recovery-environment" port="4712"/> 
    <socket-binding name="txn-status-manager" port="4713"/> 
    <outbound-socket-binding name="mail-smtp"> 
     <remote-destination host="localhost" port="25"/> 
    </outbound-socket-binding> 
</socket-binding-group> 
+0

什么是错误? –

+0

* WildFly Application Server在允许的超时时间内未启动 *请查看文件“/var/log/wildfly/console.log”以查看服务的状态 –

+0

“/ var/log/wildfly/console.log'? –

回答

4

请提供关于环境和错误更准确的细节。

我和你有类似的需求。用户通过网络访问我们的系统,其中只有可用请求位于端口80或443上。而当客户在端口80上调用系统时,wildfly会重定向到端口8443,并且用户无法连接到系统。解决的办法是让wildfly重定向到端口443,而不是8443遵守适用于所有在这个问题上寻求帮助一些指令:

  1. 在基于Linux的操作系统的情况下,港口可达1024 只可用于绑定具有根特权。
  2. 在面向生产的服务器中运行wildfly或任何其他具有root权限的web/app服务器并不是一个好主意。
  3. 另一方面,尝试使用'普通'用户直接绑定到端口443或80生成权限拒绝像错误一样运行wildfly。

用于我上述问题的解决方案是wildfly绑定到端口八千四百四十三分之八千零八十零(无根privilegies),并要求操作系统从端口80流量重定向到端口8080和端口443到端口8443后它配置wildfly重定向HTTP请求到HTTPS请求的端口443 8443

因此,假设wildfly在基于Linux操作系统正在与HTTP端口8080和HTTPS端口8443的服务:

1 )停止野蝇:sudo service wildfly stop

2)在启动添加的iptables命令/etc/init.d/wildfly脚本等:

if [ $launched -eq 0 ]; then 
     log_warning_msg "$DESC hasn't started within the timeout allowed" 
     log_warning_msg "please review file \"$JBOSS_CONSOLE_LOG\" to see the status of the service" 
    else 
     iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 
     iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443 

    fi 

$launched是一个bash变量来表示的wildfly

2)的状态下在standalone.xml ,创建一个额外的插座绑定条目:

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> 
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> 
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/> 
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> 
    <socket-binding name="http" port="${jboss.http.port:8080}"/> 
    <socket-binding name="https" port="${jboss.https.port:8443}"/> 
    <socket-binding name="https-external" port="443"/> 
    <socket-binding name="txn-recovery-environment" port="4712"/> 
    <socket-binding name="txn-status-manager" port="4713"/> 
    ... 

</socket-binding-group> 

采取重视新标签进入<socket-binding name="https-external" port="443"/>

3)更改HTTP监听重定向到HTTPS的外部代替https:

<http-listener name="default" socket-binding="http" redirect-socket="https-external" max-header-size=... 

当变化是重定向插座= “HTTPS的外部

4)wildfly重新启动:须藤服务野蛮开始

wildfly启动后,验证console.log文件以查看任何错误报告。

因此,如果你的web.xml部分保证机密运输:

.... 
<security-constraint> 
    ... 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
    </security-constraint> 
... 

Wildfly会重定向到端口80或8080的请求直接到端口443,而不是8443

观测数据:这是一个好的想法是在对它们进行任何更改之前制作/etc/init.d/wildfly脚本和standalone.xml文件配置的备份副本。

+0

我有完全一样的要求。遵循以上所有要点。但端口443不起作用(显示“无法访问此站点”)。虽然8443像prev一样正常工作。任何其他解决方法? – ManishS

+0

验证野蝇启动时是否有任何记录错误。 – Doleron

+0

它似乎太聪明,容易让我们在端口80和443上运行wildfly/tomcat/glassfish。这就是为什么他们没有这样做。你有98%的人通过配置改变端口挖掘..而不是只有1或2%的人更改端口为默认值以外的其他端口。关于java web dev的一切使我想要呕吐。 – user2914191