WildFly 11 - 使用证书发出https请求

时间:2018-01-30 12:42:01

标签: java certificate wildfly jsse wildfly-11

我有点迷失在WidlFly 11中如何使用证书。我重新编写了文档,发现了许多术语,如JSSE,OpenSSL,Elytron,ApplicationRealm。 执行代码

时会出现问题
final URL url = new URL("https://someUrl");
HttpsURLConnection httpURLConnection = (HttpsURLConnection)url.openConnection();

抛出此异常sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

那么,究竟需要配置什么?我在Elytron Doccumentation中尝试了“为应用程序启用单向SSL / TLS”部分,但没有用。

ps:我正在使用java 9.01 ps2:我正在使用standalone-full.xml

如果您需要更多信息,请告诉我

2 个答案:

答案 0 :(得分:2)

这与WildFly无关 - 您需要配置受Java URL连接信任的证书 - 您需要创建和配置信任库:

  1. 创建包含服务器证书的密钥库(如果是自签名证书)或更好的CA证书:

    keytool -import -file myCA.cert -alias myCA -storepass mypassword -noprompt -keystore my.truststore
    
  2. 通过设置javax.net.ssl.trustStorejavax.net.ssl.trustStorePassword系统属性,开始将已创建的密钥库文件用作WildFly中的信任库:

    bin/jboss-cli.sh -c
    /system-property=javax.net.ssl.trustStore:add(value="/path/to/my.truststore")
    /system-property=javax.net.ssl.trustStorePassword:add(value="mypassword")
    
  3. 您提到的Elytron文档仅与服务器端相关 - 但这是客户端配置,目前尚未由它处理。

答案 1 :(得分:1)

证书不受信任,iirc在WildFly 11中有自签名证书,因此您需要信任它或安装真实证书。 Accept server's self-signed ssl certificate in Java client