Wildfly信任库和轴

时间:2017-11-14 14:28:07

标签: java ssl wildfly axis2 truststore

我的Wildfly 10.0.0.Final上激活的后台进程需要使用Axis连接到Web服务。在远程服务器上,有一个自签名证书,我使用openssl在信任库中导入该证书以从远程服务器获取它,并且他们通过keytool创建信任库并将证书导入其中。

我设置了Wildfly 10.0.0.Final的standalone.xml,如下所示:

<security-realm name="SSLRealm">
    <server-identities>
        <ssl>
            <keystore path="keystore.jks" relative-to="jboss.server.config.dir"
                            keystore-password="mykeystorepassword" alias="myalias"
                            key-password="mykeypass" />
        </ssl>
        </server-identities>
            <authentication>
                <truststore path="truststore.jks" relative-to="jboss.server.config.dir"
                        keystore-password="mytruststorepassword" />
            </authentication>
</security-realm>

<server name="default-server">
    <http-listener name="default" socket-binding="http" redirect-socket="https" />
    <https-listener name="default-ssl" security-realm="SSLRealm" socket-binding="https" />
    <host name="default-host" alias="localhost">
        <location name="/" handler="welcome-content" />
    </host>
</server>

但是,当后台进程尝试连接到远程服务时,我获得以下异常:

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)

知道如何解决这个问题吗?似乎没有使用信任库或类似的东西...

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,只能通过向wildfly的启动脚本添加参数来解决它:

-Djavax.net.ssl.trustStore = foo.jks -Djavax.net.ssl.trustStorePassword =酒吧

当然,它会覆盖默认的cacerts。 但我不清楚为什么安全领域中定义的信任库似乎被忽略了。