jboss SSL配置在Wildfly 26.0.1中不起作用

sc4hvdpw  于 2022-11-08  发布在  其他
关注(0)|答案(3)|浏览(175)

我们正在尝试将Wildfly从8.1.0.Final迁移到26.0.1.Final。当前Wildfly在独立模式下运行,因此standalone.xml用于配置,目前没有域配置。
包括管理控制台、软件包部署等在内的一切都正常工作,但使用https请求URL时却显示“无法访问此站点"。Wildfly 26.0.1.Final中的SSL配置似乎有问题,因为8.1.0.Final版本中使用了相同的SSL证书。
下面是我们使用的SSL/TLS配置:

<tls>
                <key-stores>
                    <key-store name="abc-keystore">
                        <credential-reference clear-text="clearpasswordonetwothree"/>
                        <implementation type="JKS"/>
                        <file path="abc-keystore.jks" relative-to="jboss.server.config.dir"/>
                    </key-store>
                </key-stores>
                <key-managers>
                    <key-manager name="applicationKM" key-store="abc-keystore">
                        <credential-reference clear-text="clearpasswordonetwothree"/>
                    </key-manager>
                </key-managers>
                <server-ssl-contexts>
                    <server-ssl-context name="applicationSSC" key-manager="applicationKM"/>
                </server-ssl-contexts>
            </tls>

我们已经从配置中删除了generate-self-signed-certificate-host="localhsot",因为在我们的例子中证书不是自签名的。就像我之前提到的,相同的SSL证书已经在版本8.1.0中使用。
请注意,这与版本26.0.1.Final特别相关,我不知道除了上面的配置之外是否还需要更多的配置。
任何帮助都是非常感谢的。

ubof19bj

ubof19bj1#

这就是我如何在Wildfly支持的帮助下整理出来的。在我的情况下,它是独立模式。
TLS块:

<tls>
                <key-stores>
                    <key-store name="applicationKS">
                        <credential-reference clear-text="password"/>
                        <implementation type="JKS"/>
                        <file path="C:\wildfly26\application.keystore.jks"/>
                    </key-store>
                </key-stores>
                <key-managers>
                    <key-manager name="applicationKM" key-store="applicationKS" generate-self-signed-certificate-host="localhost">
                        <credential-reference clear-text="password"/>
                    </key-manager>
                </key-managers>
                <server-ssl-contexts>
                    <server-ssl-context name="applicationSSC" protocols="TLSv1.2" key-manager="applicationKM"/>
                </server-ssl-contexts>
            </tls>

在https-listener中引用SSL上下文

<https-listener name="https" socket-binding="https" ssl-context="applicationSSC" enable-http2="true"/>

套接字绑定在socket-binding-group下将端口从8443更改为443

<socket-binding name="https" port="${jboss.https.port:443}"/>

配置接口

<interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
        </interface>
        <interface name="public">
            <inet-address value="${jboss.bind.address:0.0.0.0}"/>
        </interface>
    </interfaces>
qjp7pelc

qjp7pelc2#

自从他们删除了安全领域后,我遇到了同样的问题。我使用了本手册的顶部:https://docs.jboss.org/author/display/WFLY/Simple%20SSL%20Migration.html
我的设置是,我有一个.cer证书和密钥,我必须使用以下两个答案重新创建密钥库:How to create an empty java trust store?How to import an existing X.509 certificate and private key in Java keystore to use in SSL?的函数
1.使用伪证书创建密钥库:keytool -genkeypair -alias boguscert -storepass changeit -keypass changeit -keystore server.keystore -dname "CN=Developer, OU=Department, O=Company, L=City, ST=State, C=CA"
1.从密钥库中删除伪证书:keytool -delete -alias boguscert -storepass changeit -keystore server.keystore
1.从密钥和.crt文件openssl pkcs12 -export -in <SERVERNAME>.crt -inkey <SERVERNAME>.key -out server.p12 -name server创建pkcs 12证书
1.将pkcs 12证书导入空密钥库:keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore server.keystore -srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass changeit -alias server
然后,我使用bin目录中的wildfly-cli,按照上面链接的jboss文档的顶部进行操作。
这会将所需的xml写入standalone.xml,因此请确保使用wildfly 26.0.1附带的普通xml。
之后,我不得不使用以下命令启用SSL重定向:Redirect http requests to https in wildfly 10
希望能有所帮助

11dmarpk

11dmarpk3#

下面是我的Widfly(20)如何配置SSL。
假设您已经设置了一个Java密钥库,其名为'server'的条目包含您的证书/密钥,您必须告诉Wildfly在您的密钥库中查找该特定别名('server'):

<management>
    <security-realms>            
            ...
        <security-realm name="ApplicationRealm">
            <server-identities>
                <ssl>
                    <keystore path="application.keystore" relative-to="jboss.server.config.dir" keystore-password="..." alias="server" key-password="..." generate-self-signed-certificate-host="localhost"/>
                </ssl>
            </server-identities>

相关问题