Jboss eap 6.4 https 配置监听端口 8443 失败

Posted

技术标签:

【中文标题】Jboss eap 6.4 https 配置监听端口 8443 失败【英文标题】:Jboss eap 6.4 https configuration is failing to listen to the port 8443 【发布时间】:2019-10-26 20:20:29 【问题描述】:

我正在使用 jboss-eap-6.4 来部署我的 Web 应用程序。我想让我的服务器支持 https 请求。所以我使用以下命令生成了密钥库:

 keytool -genkey -v -keystore foo.keystore -alias foo

我将上面的密钥库文件移动到D:\\jboss-eap-6.4\\standalone\\configuration\\ 下,并在standalone.xml 文件中添加了以下连接器:

  <subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false">
                <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
                <connector name="https" socket-binding="https" scheme="https" protocol="HTTP/1.1" secure="true" enable-lookups="false">
                <ssl name="foo-ssl" protocol="TLSv1" certificate-key-file="D:\\jboss-eap-6.4\\standalone\\configuration\\foo.keystore" key-alias="foo" password="secret"/>
                </connector>
                <virtual-server name="default-host" enable-welcome-root="true">
                    <alias name="localhost"/>
                    <alias name="example.com"/>
                </virtual-server>
 </subsystem>

https端口配置为8443端口:

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="$jboss.socket.binding.port-offset:0">
    <socket-binding name="management-native" interface="management" port="$jboss.management.native.port:9999"/>
    <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:9443"/>
    <socket-binding name="ajp" port="8009"/>
    <socket-binding name="http" port="8080"/>
    <socket-binding name="https" port="8443"/>
    <socket-binding name="remoting" port="4447"/>
    <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>

然后我尝试使用端口号 8443(通过 https)访问该 url,但应用程序无法侦听该端口。知道我在这里缺少什么吗?

错误详情: 在 IE 边缘:

Can’t connect securely to this page
This might be because the site uses outdated or unsafe TLS security settings. If this keeps happening, try contacting the website’s owner.

Your TLS security settings aren’t set to the defaults, which could also be causing this error.
Try this:
Go back to the last page

在火狐中:

Secure Connection Failed

An error occurred during a connection to hddt0719:8443. Cannot communicate securely with peer: no common encryption algorithm(s). Error code: SSL_ERROR_NO_CYPHER_OVERLAP

    The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
    Please contact the website owners to inform them of this problem.

Learn more…

Report errors like this to help Mozilla identify and block malicious sites

【问题讨论】:

中定义的套接字绑定,例如?另外,你用端口偏​​移量开始你的jboss吗?如果是这样,请尝试使用调整后的端口偏移量调用 url。 @meaningqo,我已经在问题中添加了&lt;socket-binding-group&gt;,请看一下。在我的情况下,端口偏移量为零。现在有什么想法吗? “应用程序无法监听端口”是什么意思?你遇到了什么错误。 @Abhijeet,现在在问题中添加了错误详细信息,请查看。现在有什么想法吗? 根据错误日志,您没有为您的 ssl 标签指定密码。添加cipher-suite解决问题 【参考方案1】:

你应该改变方式,生成keystore,使用命令

 keytool -genkey -keystore foo.keystore -alias foo -keyalg "RSA" -sigalg "SHA1withRSA" -keysize 2048 -validity 365

keytool默认生成DSA类型的keystore,你应该提供RSA类型的keystore。 我检查了这两种类型的密钥,我的 jBoss 使用了以建议方式生成的 RSA ssl 密钥库。 你的 jBoss 配置是正确的。

【讨论】:

以上是关于Jboss eap 6.4 https 配置监听端口 8443 失败的主要内容,如果未能解决你的问题,请参考以下文章

JBOSS EAP 6.4:无法在生成的 WSDL 中的“soap:address”中使用 HTTPS 模式

SQL Server 2014 在 JBOSS EAP 6.4 数据源配置中连接失败

如何针对在其上运行的不同应用程序以不同方式配置 jboss EAP 6.4?

在JBOSS eap 7中配置HTTP线程大小

从Jboss EAP 6.4迁移到EAP 7.1

Jboss (6.4 EAP) 到 WebSphere (7.x)