【问题标题】:SSL configuration is not working in Wildfly 26.0.1SSL 配置在 Wildfly 26.0.1 中不起作用
【发布时间】:2022-01-31 08:20:11
【问题描述】:

我们正在尝试将 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 版本特别相关,我不知道除上述之外是否需要任何其他配置。

非常感谢任何帮助。

【问题讨论】:

  • 我确实有同样的问题,我们正在从wildfly 10迁移到26,因为我们已经从java 8更新到java 17 有人知道如何配置吗?
  • @Mintakastar 就我而言,它是独立模式。配置 SSL 后,这是我唯一缺少的东西。尝试使用以下将 jboss 绑定到所有接口的命令启动 wildfly。 ./standalone.sh -b 0.0.0.0 -Djboss.bind.address.management=0.0.0.0 -Dorg.apache.xml.dtm.DTMManager="org.apache.xml.dtm.ref.DTMManagerDefault"

标签: ssl configuration jboss wildfly wildfly-26


【解决方案1】:

这是我的 Widfly (20) 关于 SSL 的配置方式。

假设您已经设置了一个 Java 密钥库,其名为“服务器”的条目包含您的证书/密钥,您必须告诉 Wildfly 在您的密钥库中查找该特定别名(“服务器”):

<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>

【讨论】:

  • 感谢您的帮助。实际上问题出在 Wildfly 26 上,他们完全改变了 SSL 配置。我在standalone.xml 文件中看不到此配置,因为您可以在我的问题中看到配置,即使 SSL 的当前配置也不接受块中的别名。
【解决方案2】:

自从他们删除了安全领域后,我遇到了同样的问题。我使用了本手册的顶部: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"
  2. 从密钥库中删除虚拟证书:keytool -delete -alias boguscert -storepass changeit -keystore server.keystore
  3. 从密钥和 .crt 文件创建 pkcs12 证书openssl pkcs12 -export -in &lt;SERVERNAME&gt;.crt -inkey &lt;SERVERNAME&gt;.key -out server.p12 -name server
  4. 将 pkcs12 证书导入空密钥库: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 附带的原版。
之后,我必须使用以下命令启用 ssl 重定向:Redirect http requests to https in wildfly 10

希望对你有帮助

【讨论】:

    【解决方案3】:

    这是我在 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下的Socket绑定 将端口从 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>
    

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      相关资源
      最近更新 更多