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

2022-08-06 00:00:00 certificate java 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:我使用的是stand-full.xml

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


解决方案

这与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")
    

您提到的Elytron文档仅与服务器端相关,但这是客户端配置,当前不由其处理。

相关文章