JBoss 7 HTTPS Connection在手动运行时有效,但在8080运行时作为Linux服务运行

时间:2014-10-14 06:49:26

标签: linux sockets service jboss

目前我正在使用JBoss 7.1.0并修改了 standalone.xml 文件,以便通过 socket-binding-group 下的套接字绑定提供HTTPS连接。

    <socket-binding name="http" port="8080"/>
    <socket-binding name="https" port="8089"/>

我在子系统xmlns =“urn:jboss:domain:web:1.1 相关标签下添加了连接器

<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" enable-lookups="false" secure="true">
            <ssl name="foo-ssl" key-alias="foo" password="somepassword" certificate-key-file="../standalone/configuration/foo.keystore" protocol="TLSv1"/>
</connector>

当我通过此命令运行服务器时:./ standalone.sh,加载了webapp,我可以在https://someaddress:8089/myapp

访问它

然后我开始创建一个用于管理jboss的linux服务。步骤如下所示:Run JBoss as a Linux Service

我可以启动和停止服务,但现在可以通过http(http://someaddress:8080/myapp)在8080端口上使用webapp。如果我尝试访问https://someaddress:8089/myapp,我会在浏览器中显示“此网页不可用”。

我不确定是什么问题,但似乎当我将其作为服务启动时,它会在默认端口上运行。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

最后找到问题所在。感谢Federico要求输出日志文件。问题在于standalone.xml中的SSL文件路径。这是错误:

<ssl name="foo-ssl" key-alias="foo" password="mypassword" certificate-key-file="../standalone/configuration/foo.keystore" protocol="TLSv1"/>

手动运行时,相对路径运行良好,因为它会回溯bin文件夹并找到独立目录。但是,当它作为一项服务开始时,它不起作用。解决方案是将其设置如下:

<ssl name="foo-ssl" key-alias="foo" password="mypassword" certificate-key-file="${jboss.server.config.dir}/foo.keystore" protocol="TLSv1"/>