野猪服务器信任库和Axis

3

我正在使用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. myaliasjks 文件中正确的别名吗?
  2. truststore.jks 是否在 Wildfly 文件夹中(即不是子文件夹)?
  3. 自签名证书是否在客户端的 JDK 中的 cacerts 文件中?
- achAmháin
  1. 是的,它是。
  2. 是的,它是。
  3. 嗯...不,它不是。我也考虑过cacerts,但我认为Wildfly不会使用它,而是在standalone.xml中指定的truststore。我会尝试一下。
- kekolab
最后,我不得不将自签名证书添加到cacerts中,但正如@chris-c在下面的答案中指出的那样,我不明白为什么安全域中的信任存储被忽略了... - kekolab
2
安全域是用于验证入站连接的。 - SJuan76
1个回答

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

-Djavax.net.ssl.trustStore=foo.jks -Djavax.net.ssl.trustStorePassword=bar

。这些参数会覆盖默认的cacerts证书。但是我不明白为什么在security-realm中定义的信任库被忽略了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接